AVCaptureDeviceType.builtInDualCamera的作用是什么

Bob*_*421 3 avcapturesession avcapturedevice swift

我正在玩swift和iPhone 7 Plus.我正在使用builtInWideAngleCamera和builtInTelephotoCamera.即使我无法同时获得2张图像,这也很棒.

我在Apple文档中看到AVCaptureDeviceType包含一个builtInDualCamera条目.这个设备在avfoundation中的目的是什么,因为我们不能用apple API做任何事情(缩放,深度效果)?

换句话说,在使用AVCaptureDeviceType,avcapturesession和stuff时,我看不出builtInDualCamera和builtInWideAngleCamera之间的区别

谢谢

Blu*_*ngs 5

Duel-Camera选项是选择Camera app之类的行为,让系统决定自动选择在捕获过程中使用哪个摄像头,并且可以组合两个摄像头的数据以提高输出.此外,它不支持任何RAW照片捕捉,OIS,HFR和Slo mo.

有关更多信息,请查看iOSDeviceCompatibility

来自文档:

双摄像头

一些iOS设备包含一个双摄像头 - 两个独立的后置摄像头,可以作为单个捕获设备一起工作.在具有双摄像头的设备上设置捕获会话时,您可以选择仅使用广角摄像头,仅使用远摄摄像头或双摄像头.选择双摄像头捕获设备提供类似于内置摄像头应用程序的行为 - 系统自动选择在捕获期间使用哪个摄像头,并且可以组合来自两个摄像头的数据以改善捕获输出.

AVCaptureDevice设备和devicesWithMediaType:方法在iOS 10中已弃用,并且不提供对双摄像头设备的访问(相反,它们仅提供广角摄像头设备).要确定设备是否包含双摄像头并选择它进行捕获,您可以:

  • 调用AVCaptureDevice defaultDeviceWithDeviceType:mediaType:position:方法,传递builtInDuoCamera设备类型.如果此方法返回非零值,则iOS设备包含双摄像头.(如果此方法返回nil,则可以再次调用它,传递builtInWideAngleCamera设备类型,以获取默认的后置摄像头.)
  • 创建AVCaptureDeviceDiscoverySession对象,传递要用于捕获的设备属性,并枚举其设备列表以选择捕获会话的设备.

使用双摄像头捕获设备时,无法使用光学图像稳定(OIS),RAW照片捕获,高帧率(HFR)/慢动作视频和大多数手动控制.要使用这些功能,请专门选择宽屏或远摄捕获设备.(对于OIS,特别选择广角相机;长焦相机不支持光学防抖.)