Apple 的 AVCam 演示应用程序的演示源代码可在此处找到:https ://developer.apple.com/library/content/samplecode/AVCam/Introduction/Intro.html在尝试拍照时崩溃(无论您是否构建了目标-C 或 Swift 版本)在AVCamCameraViewController/CameraViewController
(Swift) 中捕获照片的行:
[self.photoOutput capturePhotoWithSettings:photoSettings delegate:photoCaptureDelegate];
或(斯威夫特)
self.photoOutput.capturePhoto(with: photoSettings, delegate: photoCaptureDelegate)
崩溃时的错误信息是:
2016-11-21 17:44:31.590070 AVCam[2178:2303627] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[AVCapturePhotoOutput capturePhotoWithSettings:delegate:] flashMode 必须设置为支持的FlashModes 中存在的值大批'
当我检查 flash 模式数组时,我得到了这个:
(lldb) po [self.photoOutput supportedFlashModes] <__NSSingleObjectArrayI 0x170007c50>( 0 )
因此,为了添加 flash 模式,文档说您必须指定要在AVCapturePhotoSettings
对象中支持的模式。我已经用这行代码做到了:
photoSettings.flashMode = AVCaptureFlashModeAuto;
或(斯威夫特)
photoSettings.flashMode = .auto
所以我的直觉是,这是一个与 12.9 英寸 iPad Pro 相关的错误,我可能需要提交雷达,但我想我会在这里问一下,以防有人以前见过。有什么想法吗?
更新
我也能够复制其他 iPad,因此它似乎不仅仅是 12.9 英寸 iPad Pro。