首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iPhone 13 Pro / AVFoundation / builtInTripleCamera :如何实现相机之间的自动切换?

iPhone 13 Pro / AVFoundation / builtInTripleCamera :如何实现相机之间的自动切换?
EN

Stack Overflow用户
提问于 2021-10-15 16:35:16
回答 1查看 910关注 0票数 2

我目前正在为iOS和swiftUI AVFoundation制作一个自定义相机应用程序。我也刚买了iPhone 13 Pro。在本机摄像头应用程序中,相机会根据对焦自动切换(对于中程/远距离远距离的远距离远摄时,相机会自动切换到宏/宽角度)。在文件中也提到了这一点:

内置的三倍摄像机支持以下功能:当变焦因子、光线水平和焦距位置允许时,自动从一台相机切换到另一台相机。

如何在我的自定义应用程序中实现这个功能?我就是这样选择相机(虚拟设备)的:

代码语言:javascript
运行
复制
let session = AVCaptureDevice.DiscoverySession(deviceTypes: [ .builtInTripleCamera ], mediaType: AVMediaType.video, position: .unspecified)
let cameras = (session.devices.compactMap { $0 })
for camera in cameras {
  if camera.position == .back {
    self.rearCamera = camera
    try camera.lockForConfiguration()
    camera.exposureMode = .continuousAutoExposure
    camera.focusMode = .continuousAutoFocus
    camera.unlockForConfiguration()
  }
}

有没有我缺少的配置?

EN

回答 1

Stack Overflow用户

发布于 2022-03-25 14:07:19

一旦你开始放大,通过直接设置videoZoomFactor或调用输入设备的ramp(toVideoZoomFactor:withRate:)方法,它会自动切换到超宽、广角和远距离镜头之间。开关是根据正在设置的缩放因子进行的。

1的缩放因子总是最小的.在13专业,设置一个变焦因子的1将切换到超宽镜头。要知道哪个是系统决定切换到下一个镜头的其他缩放因子,您可以查看捕获设备的virtualDeviceSwitchOverVideoZoomFactors属性。如果是13 Pro,则是26。在2,它将切换到广角镜头.在6,它将切换到远距离镜头。

只要您使用的是.builtInTripleCamera设备类型,就不需要为此设置任何其他配置。

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

https://stackoverflow.com/questions/69587952

复制
相关文章

相似问题

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