我正在尝试以编程方式从同一场景拍摄带有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];
}
}
问题:相机在拍完第一张照片后会自动对焦并自动曝光。如何强制曝光和对焦保持锁定?
感谢任何帮助。
答案 0 :(得分:3)
我认为您缺少提交配置:
在您的代码放置之前:
captureSession = [[AVCaptureSession alloc] init];
[captureSession beginConfiguration];
后:
[captureSession commitConfiguration];
希望这会有所帮助。