AVCaptureDeviceType.builtInDualCamera

时间:2017-01-05 10:14:09

标签: swift avcapturesession avcapturedevice

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

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

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

由于

2 个答案:

答案 0 :(得分:5)

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

有关详情,请查看iOSDeviceCompatibility

来自文档:

  

双摄像头

     

某些iOS设备包含一个双摄像头 - 两个独立的背面   可以作为单个捕获设备一起工作的相机。什么时候   您可以使用双摄像头在设备上设置捕获会话   选择只使用广角相机,只使用长焦相机,   或双摄像头。选择双摄像头捕获设备提供   行为类似于内置的相机应用程序 - 系统自动   选择在捕获期间使用哪个相机,并且可以组合来自的数据   这两款相机都可以提高拍摄输出效果。

     

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

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

使用双摄像头时   捕获设备,光学图像稳定(OIS),RAW照片捕获,   高帧率(HFR)/慢动作视频,以及大多数手动控制   不可用。要使用这些功能,请特别选择其中一个   广角或长焦捕捉设备。 (对于OIS,特别选择   广角相机;长焦相机不支持光学   图像稳定。)

答案 1 :(得分:0)

builtInDualCamera就像一个“简单模式”,在变焦时无缝地自动切换广角和长焦。

捕获视频时,ramp(逐渐缩放)可以从1x到16x无缝连接。而手动处理将会更加有效,并且在切换设备时可能会滞后。