问题描述
||
我正在尝试使用iPhone相机以编程方式从同一场景拍摄多张照片,但我不想在用户将其设置为第一张照片后改变曝光或焦点。
这是我的代码,当用户从我的应用程序内启动图片拍摄时会执行:
NSArray *devices = [AVCaptureDevice devices];
NSError *error;
for (AVCaptureDevice *device in devices) {
if (([device hasMediaType:AVMediaTypeVideo]) &&
([device position] == AVCaptureDevicePositionBack) ) {
[device lockForConfiguration:&error];
if ([device isWhiteBalanceModeSupported:AVCaptureWhiteBalanceModeLocked]) {
device.whiteBalanceMode = AVCaptureWhiteBalanceModeLocked;
NSLog(@\"Whitebalanced locked\");
}
if ([device isExposureModeSupported:AVCaptureExposureModeLocked]) {
device.exposureMode = AVCaptureExposureModeLocked;
NSLog(@\"Exposure locked\");
}
if ([device isFocusModeSupported:AVCaptureFocusModeLocked]) {
device.focusMode = AVCaptureFocusModeLocked;
NSLog(@\"Focus locked\");
}
[device unlockForConfiguration];
}
}
问题:拍摄第一张照片后,相机会自动对焦和自动曝光。如何强制曝光和对焦保持锁定状态?
任何帮助表示赞赏。
解决方法
我认为您缺少提交配置的方法:
在您的代码之前:
captureSession = [[AVCaptureSession alloc] init];
[captureSession beginConfiguration];
后:
[captureSession commitConfiguration];
希望这会有所帮助。