AVCaptureDeviceInput deviceInputWithDevice возвращает nil для некоторых пользователей - PullRequest
0 голосов
/ 02 мая 2018

Я использую камеру устройства, чтобы щелкнуть несколько картинок. Приведенный ниже код работает нормально почти для 90% пользователей, но для остальных из них происходит сбой.

_session = [AVCaptureSession new];
_session.sessionPreset = AVCaptureSessionPresetPhoto;

//
// setup device
//

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

if ([device lockForConfiguration:nil]) {
    if (device.autoFocusRangeRestrictionSupported) {
        device.autoFocusRangeRestriction = AVCaptureAutoFocusRangeRestrictionNear;
    }

    if (device.smoothAutoFocusSupported) {
        device.smoothAutoFocusEnabled = YES;
    }

    if([device isFocusModeSupported:AVCaptureFocusModeContinuousAutoFocus]){
        device.focusMode = AVCaptureFocusModeContinuousAutoFocus;
    }

    device.exposureMode = AVCaptureExposureModeContinuousAutoExposure;

    [device unlockForConfiguration];
}

//
// add device input to session
//

AVCaptureDeviceInput *deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
[_session addInput:deviceInput];

В журналах сбоев говорится, что [AVCaptureSession addInput:] Невозможно добавить ноль AVCaptureInput, что в основном означает, что объект deviceInput подходит для некоторых пользователей как ноль. Может кто-нибудь, пожалуйста, помогите мне с первопричиной этого или в каких случаях этот объект может быть нулевым, так как он отлично работает для большинства пользователей.

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