Stack Overflow上的第一个问题!这个网站多年来一直帮助我解决编码和技术问题。我总是在这里找到每个答案,从来没有注册过任何问题!但是这个...我只是不明白!?
我正在构建符合ios 10标准并与iPhone 7双摄像头兼容的ios应用程序。现在用这段代码启动AVCaptureDevice:
AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithDeviceType: AVCaptureDeviceTypeBuiltInDualCamera
mediaType: AVMediaTypeVideo
position: preferredPosition];
if(videoDevice == nil){
videoDevice = [AVCaptureDevice defaultDeviceWithDeviceType: AVCaptureDeviceTypeBuiltInWideAngleCamera
mediaType: AVMediaTypeVideo
position: preferredPosition];
}
非常简单,如果没有AVCaptureDeviceTypeBuiltInDualCamera而不是AVCaptureDeviceTypeBuiltInWideAngleCamera。
在iPhone 6s 64gb(ios 10.2)上,它就像一个魅力!但是当在相同的iPhone 6s 64gb(ios 10.2)上进行测试时,该设备会在线返回EXC_BAD_ACCESS:
AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithDeviceType: AVCaptureDeviceTypeBuiltInDualCamera
mediaType: AVMediaTypeVideo
position: preferredPosition];
在该设备上,只有当我完全取下双摄像头并将所有设置为广角时,它才有效。它应该返回nil并切换到广角!可能是什么问题......僵尸进程并没有返回任何有用的东西。我的猜测是第二部iPhone只是马车。你们觉得怎么样?
答案 0 :(得分:0)
我遇到同样的问题,以下解决方案对我有用。
请尝试在info.plist中添加以下标志, "隐私 - 相机使用说明"并为其设置任何字符串值。 保存并运行该应用程序。
此外,如果您想使用照片库,请添加"隐私 - 照片库使用说明"键并设置要在权限弹出窗口中显示的任何字符串值。
答案 1 :(得分:0)
这很奇怪,有完全相同的问题和改变
AVCaptureDeviceTypeBuiltInDualCamera
到
AVCaptureDeviceTypeBuiltInDuoCamera
解决了这个问题...但奇怪的是,Duo已弃用且应该使用双重
AVF_EXPORT AVCaptureDeviceType const AVCaptureDeviceTypeBuiltInDuoCamera NS_DEPRECATED_IOS(10_0, 10_2, "Use AVCaptureDeviceTypeBuiltInDualCamera instead") __TVOS_PROHIBITED;
答案 2 :(得分:0)
有同样的问题。
就我而言,在一台设备中,相机无法正常工作!
我去了相机应用程序并尝试使用相机,没有工作。
重启设备,相机仍然无法正常工作。
在这种情况下,AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithDeviceType:AVCaptureDeviceTypeBuiltInDualCamera mediaType:AVMediaTypeVideo position:AVCaptureDevicePositionUnspecified];
只返回nil;
我拿了另一台摄像机工作正常的设备。现在代码崩溃的同一行。