iPad Pro使用builtInDualWideCamera时isDepthDataDeliverySupported返回false的原因咨询
我来帮你分析下可能导致这个问题的几个常见原因,你可以逐一排查看看:
会话视频格式的兼容性问题:
builtInDualWideCamera对支持深度数据输出的视频格式有特定要求,不是所有格式都能配合输出深度数据。你可以检查项目中选择的视频格式,优先挑选包含AVVideoFormatDepthDataKey的格式,一些低分辨率或特殊编码的格式可能不支持深度数据交付。权限与查询时机的问题:首先要确保你的App已经获取了相机权限——Info.plist里必须添加
NSCameraUsageDescription权限描述,并且用户首次打开App时授权了相机访问。另外,查询isDepthDataDeliverySupported的时机很关键,必须先将相机设备添加到捕获会话的输入中,再去检查这个属性,否则可能返回错误的结果。深度数据交付未主动启用:就算相机硬件本身支持深度数据,你也需要主动开启这个功能。在配置捕获会话时,要调用相机设备的
setDepthDataDeliveryEnabled(true)方法,而且这个操作必须在会话处于AVCaptureSession.Status.notRunning状态时执行,不然设置不会生效。原示例项目针对builtInDualCamera可能做了这个处理,但你新增builtInDualWideCamera后,可能没把这个逻辑覆盖到新的设备类型上。设备硬件的型号限制:虽然多数新款iPad Pro的DualWideCamera支持深度数据,但部分早期型号的iPad Pro双摄可能不具备这个能力。你可以确认下自己iPad Pro的具体代际,对照官方信息看看该机型的相机是否支持深度数据交付。
备注:内容来源于stack exchange,提问作者shim

