Есть ли способ программно установить фокус камеры с устройства iOS на бесконечность? - PullRequest
12 голосов
/ 13 декабря 2011

Я создаю приложение, которое блокирует фокусировку камеры для записи видео. Я хочу зафиксировать фокус на бесконечность без необходимости вручную настраивать фокусировку. Это возможно? Спасибо!

Ответы [ 3 ]

6 голосов
/ 25 ноября 2012

К сожалению, нет. Как сказал Артем, вы можете установить камеру в режим блокировки фокуса; переведите его в режим автофокуса (фокусировка, затем блокировка) или в режим непрерывной автофокусировки, но вы не можете задать камере конкретное расстояние для фокусировки.

Лучшее, что я смог придумать (для управления экспозицией и балансом белого, которые так же ограничены), это заставить пользователя направить камеру на соответствующую сцену (в вашем случае, что-то далеко) и иметь он / она нажимает кнопку блокировки.

Сведения об API устройства захвата, такие как: https://developer.apple.com/library/mac/#documentation/AVFoundation/Reference/AVCaptureDevice_Class/Reference/Reference.html

6 голосов
/ 20 января 2012

Это способ отключить фокус, он блокирует его на все время:

// Find a suitable capture device
    AVCaptureDevice *cameraDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

    // SETUP FOCUS MODE
    if ([cameraDevice lockForConfiguration:nil]) {

        [cameraDevice setFocusMode:AVCaptureFocusModeLocked];

        [cameraDevice unlockForConfiguration];
    }
    else{
        NSLog(@"error while configuring focusMode");
    }

Что вы подразумеваете под "заблокировать фокус на бесконечность"?

1 голос
/ 08 августа 2016

AVCaptureDevice имеет функцию setFocusModeLockedWithLensPosition: завершениюHandler:

. Вы можете использовать его для установки 1.0 для достижения расстояния "бесконечности"

    func focusTo(value : Float) {
      if let device = captureDevice {
      if(device.lockForConfiguration(nil)) {
         device.setFocusModeLockedWithLensPosition(value, completionHandler: { (time) -> Void in
            //
        })
        device.unlockForConfiguration()
      }
    }

Обновление: согласно документации Apple 1.0 не представляетфокус на бесконечности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...