首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两部相同的iphones,其中一部在AVCaptureDeviceTypeBuiltInDualCamera上返回exc_bad_access

两部相同的iphones,其中一部在AVCaptureDeviceTypeBuiltInDualCamera上返回exc_bad_access
EN

Stack Overflow用户
提问于 2017-01-12 06:56:47
回答 3查看 497关注 0票数 3

第一个关于堆栈溢出的问题!这个网站多年来一直帮助我解决编码和技术问题。我总是在这里找到每一个答案,而且从来不需要注册和询问任何问题!但是这一个..。我就是不明白!?

我正在构建一个与iOS10兼容并与iPhone 7双摄像头兼容的ios应用程序。现在,使用以下代码启动AVCaptureDevice时:

代码语言:javascript
复制
AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithDeviceType: AVCaptureDeviceTypeBuiltInDualCamera
                                                mediaType: AVMediaTypeVideo
                                                position: preferredPosition];  
if(videoDevice == nil){
          videoDevice = [AVCaptureDevice defaultDeviceWithDeviceType: AVCaptureDeviceTypeBuiltInWideAngleCamera
                                                           mediaType: AVMediaTypeVideo
                                                           position: preferredPosition];
     }

非常简单,如果没有比AVCaptureDeviceTypeBuiltInWideAngleCamera更好的AVCaptureDeviceTypeBuiltInDualCamera。

在一台64 6s的iPhone 6s(iOS10.2)上,它的工作就像一个护身符!但在相同的iPhone 6s 64 on (iOS10.2)上测试时,该设备在线返回EXC_BAD_ACCESS:

代码语言:javascript
复制
AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithDeviceType: AVCaptureDeviceTypeBuiltInDualCamera
                                                mediaType: AVMediaTypeVideo
                                                position: preferredPosition];

在那个设备上,只有当我完全移除双摄像头并将所有东西都设置为广角时,它才能工作。它应该只返回nil并切换到广角!会有什么问题...僵尸进程不会返回任何有用的东西。我的猜测是第二个iPhone是有缺陷的。你们觉得怎么样?

EN

回答 3

Stack Overflow用户

发布于 2017-04-09 01:55:11

这是非常奇怪的,有完全相同的问题和变化

代码语言:javascript
复制
AVCaptureDeviceTypeBuiltInDualCamera

代码语言:javascript
复制
AVCaptureDeviceTypeBuiltInDuoCamera

解决了问题..。但奇怪的是,Duo已被弃用,而应使用dual

代码语言:javascript
复制
AVF_EXPORT AVCaptureDeviceType const AVCaptureDeviceTypeBuiltInDuoCamera NS_DEPRECATED_IOS(10_0, 10_2, "Use AVCaptureDeviceTypeBuiltInDualCamera instead") __TVOS_PROHIBITED;
票数 1
EN

Stack Overflow用户

发布于 2017-01-15 17:54:14

我遇到了同样的问题,下面的解决方案对我有效。

请尝试在info.plist“隐私-摄像头使用说明”中添加以下标志,并为其设置任意字符串值。保存并运行应用程序。

另外,如果您想使用图片库,请添加"Privacy - photo library Usage Description“键,并设置要在权限弹出窗口中显示的任何字符串值。

票数 0
EN

Stack Overflow用户

发布于 2017-04-20 21:13:24

也有同样的问题。在我的例子中,有一台设备的摄像头无法工作!我去了相机应用程序,尝试使用相机,但不起作用。重新启动了设备,摄像头还是不能工作。在这种情况下,AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithDeviceType:AVCaptureDeviceTypeBuiltInDualCamera mediaType:AVMediaTypeVideo position:AVCaptureDevicePositionUnspecified];只返回nil;

我拿了另一个摄像头工作正常的设备。现在,代码中的同一行崩溃了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41602252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档