iphone相机曝光/对焦锁定:它不会保持锁定状态

时间:2011-06-13 02:24:29

标签: iphone sdk locking focus camera

我正在尝试以编程方式从同一场景拍摄带有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];
        }
    }

问题:相机在拍完第一张照片后会自动对焦并自动曝光。如何强制曝光和对焦保持锁定?

感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

我认为您缺少提交配置:

在您的代码放置之前:

captureSession = [[AVCaptureSession alloc] init];
[captureSession beginConfiguration];

后:

[captureSession commitConfiguration];

希望这会有所帮助。