экспозиция камеры iphone / блокировка фокуса: она не остается заблокированной - PullRequest
1 голос
/ 13 июня 2011

Я пытаюсь программно сделать несколько снимков с помощью камеры 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 Ответ

3 голосов
/ 09 августа 2011

Я думаю, что вам не хватает для фиксации конфигурации:

Перед вашим кодом поставьте:

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

После того, как:

[captureSession commitConfiguration];

Надеюсь, это помогло.

...