Я использую камеру устройства, чтобы щелкнуть несколько картинок. Приведенный ниже код работает нормально почти для 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 подходит для некоторых пользователей как ноль. Может кто-нибудь, пожалуйста, помогите мне с первопричиной этого или в каких случаях этот объект может быть нулевым, так как он отлично работает для большинства пользователей.