Mou*_*rad 5 camera avfoundation ios avcapturedevice swift
我目前正在使用 swiftUI AVFoundation 为 iOS 制作一个自定义相机应用程序。我也刚买了iPhone 13 Pro。在本机相机应用程序上,相机根据焦点自动切换(微距超广角/中距离广角/聚焦远处物体时长焦)。文档中也提到了这一点:
内置三摄像头支持以下功能: 当变焦系数、光线水平和对焦位置允许时,自动从一个摄像头切换到另一个摄像头。
如何在我的自定义应用程序中实现此功能?这就是我选择相机(虚拟设备)的方式:
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()
}
}
Run Code Online (Sandbox Code Playgroud)
我缺少什么配置吗?
Vis*_*ran 13
一旦开始放大,无论是直接设置videoZoomFactor还是调用ramp(toVideoZoomFactor:withRate:)输入设备的方法,都会自动在超广角、广角和长焦镜头之间切换。切换根据所设置的缩放系数进行。
缩放系数1始终是最小值。对于 13 Pro,将变焦系数设置为1将切换到超广角镜头。要了解系统决定切换到下一个镜头的其他变焦系数,您可以查看virtualDeviceSwitchOverVideoZoomFactors捕获设备的属性。对于 13 Pro,为2和6。2时,它将切换到广角镜头。6时,它将切换到长焦镜头。
只要您使用该.builtInTripleCamera设备类型,就无需设置任何其他配置即可实现此目的。
| 归档时间: |
|
| 查看次数: |
2375 次 |
| 最近记录: |