我目前正在使用 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)
我缺少什么配置吗?