gpt4 book ai didi

objective-c - AVCam 项目在 iPad 上崩溃

转载 作者:IT王子 更新时间:2023-10-29 05:36:35 28 4
gpt4 key购买 nike

Apple 的 AVCam 演示应用程序演示源代码可在此处找到:https://developer.apple.com/library/content/samplecode/AVCam/Introduction/Intro.html尝试在捕获照片的 AVCamCameraViewController/CameraViewController(Swift) 中的行上拍照(无论您构建的是 Objective-C 还是 Swift 版本)时崩溃:

[self.photoOutput capturePhotoWithSettings:photoSettings delegate:photoCaptureDelegate];

或( swift )

self.photoOutput.capturePhoto(with: photoSettings, delegate: photoCaptureDelegate)

崩溃时的错误信息是:

2016-11-21 17:44:31.590070 AVCam[2178:2303627] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[AVCapturePhotoOutput capturePhotoWithSettings:delegate:] flashMode must be set to a value present in the supportedFlashModes array'

当我检查闪光灯模式数组时,我得到了这个:

(lldb) po [self.photoOutput supportedFlashModes] <__NSSingleObjectArrayI 0x170007c50>( 0 )

因此,为了添加闪光灯模式,文档说您必须在 AVCapturePhotoSettings 对象中指定要支持的模式。我用这行代码做到了这一点:

photoSettings.flashMode = AVCaptureFlashModeAuto;

或( swift )

photoSettings.flashMode = .auto

所以我的直觉是,这是一个与 12.9"iPad Pro 特别相关的错误,我可能需要提交一个雷达,但我想我会在这里问一下,以防有人以前见过它。任何想法?

更新

我也已经能够复制其他 iPad,所以它似乎不仅仅是 12.9"iPad Pro。

最佳答案

添加这个...

let position = self.videoDeviceInput.device.position
photoSettings.flashMode = position == .front || position == .unspecified ? .off : .auto

就在这之前......

self.photoOutput.capturePhoto(with: photoSettings, delegate: photoCaptureDelegate)

这应该可以解决问题。

关于objective-c - AVCam 项目在 iPad 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40732183/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com