在 Swift 中手动设置 iOS 相机的曝光

use*_*509 5 optimization camera ios avcapturesession swift

我了解 iOS 中的相机在拍摄视频和照片时会自动连续调整曝光。

问题:

如何关闭相机的自动曝光?

在 Swift 代码中,如何将相机的曝光设置为“零”,以便曝光对周围环境完全中性而不补偿光线?

Poc*_*chi 5

您可以通过设置“AVCaptureExposureMode”属性来设置曝光模式。文档在这里

var exposureMode: AVCaptureDevice.ExposureMode { get set }
Run Code Online (Sandbox Code Playgroud)

你必须考虑的3件事。

1)检查设备是否真的支持“isExposureModeSupported”

2)在调整曝光之前,您必须“锁定配置”。文档在这里

3) 通过设置 ISO 和持续时间来调整曝光。你不能只是将它设置为“0”

国际标准化组织

此属性通过应用于信号的增益值返回传感器对光的敏感度。仅支持 minISO 和 maxISO 之间的曝光持续时间值。较高的值会导致图像更嘈杂。无论曝光模式如何,都可以随时读取属性值,但只能使用 setExposureModeCustom(duration:iso:completionHandler:) 方法进行设置。