使用AVCaptureDevice类的exposureMode属性和exposureDuration属性来手动设置曝光值。
示例代码:
// 获取当前视频设备对象 let device = AVCaptureDevice.default(for: .video)
// 将曝光模式设置为手动 do { try device?.lockForConfiguration() device?.exposureMode = .custom } catch { // 处理错误 }
// 设置曝光时间 let duration = CMTimeMake(value: 1, timescale: 30) // 曝光时间为1/30秒 device?.setExposureModeCustom(duration: duration, iso: AVCaptureDevice.currentISO, completionHandler: nil)
// 恢复自动曝光模式 device?.exposureMode = .continuousAutoExposure device?.unlockForConfiguration()