Исходный код Apple для демонстрационного приложения AVCam, найденного здесь: https://developer.apple.com/library/content/samplecode/AVCam/Introduction/Intro.html сбой при попытке сделать снимок (независимо от того, строите ли вы версии Objective-C или Swift) в строке в AVCamCameraViewController/CameraViewController
(Swift), который захватывает фото:AVCam Project Crashes On iPad
[self.photoOutput capturePhotoWithSettings:photoSettings delegate:photoCaptureDelegate];
или (Swift)
self.photoOutput.capturePhoto(with: photoSettings, delegate: photoCaptureDelegate)
сообщение об ошибке, когда он выходит из строя является:
2016-11-21 17: 44: 31,590070 AVCam [2178: 2303627] * Нагрузочный приложение из-за для неперехваченного исключения 'NSInvalidArgumentException', причина: «* - [AVCapturePhotoOutput capturePhotoWithSettings: Делегат:] flashMode должен быть установлен в значение в массиве supportedFlashModes»
И когда я исследую массив режимов вспышки, я получаю это:
(lldb) ро [self.photoOutput supportedFlashModes] < __NSSingleObjectArrayI 0x1700 07c50> (0)
Поэтому для того, чтобы добавить режим вспышки, документы говорят, вы должны указать, какие режимы вы хотите поддерживать в AVCapturePhotoSettings
объекте. Я сделал, что с этой строки кода:
photoSettings.flashMode = AVCaptureFlashModeAuto;
или (Swift)
photoSettings.flashMode = .auto
Так что моя догадка, что это ошибка конкретно связана с 12.9" IPad Pro и I вероятно, необходимо представить радар, но думал, что я хотел бы спросить здесь, в случае, если кто-то видел его раньше. есть идеи?
Update
Я также смог дублировать и другие iPads, так что это, похоже, не только 12,9 "iPad Pro.
Guess мы должны представить радар. Такая же база кода работает на всех iPhone и iPad без каких-либо сбоев. У меня нет iPad Pro, чтобы проверить его :( – Bluewings
Что я сделал, это определить, является ли текущее устройство .front или .back, и я установил flashMode в .off для .front или .unspecified и .auto в противном случае. Надеюсь, это поможет. – psparago
Было ли это когда-либо разрешено? Имея ту же проблему. Но не удалось подтвердить версию iPad, которую пользователь имеет. :( – hadez30