我刚开始在Xcode中学习Swift,并且正在创建一个简单的相机应用程序以启动并运行。我有一个可以在前后摄像头之间切换的按钮,但是我想添加一个选项,以便在iPhone 11 Pro的长焦和超宽镜头之间切换。
我已经创建了为每个镜头运行新的CaptureSession的函数(如果检测到),但是只是想知道如何将这些函数调用为UIbutton函数
让我挠头的是if语句,用于在前后摄像头之间切换:if input.device.position == .back {
这仅是正面或背面的特性,而不是镜头本身。什么是使按钮随后每次按下按钮都从正面变宽,远摄,超广角并变回正面的有效方法?
对于任何滥用术语表示歉意,我是Swift编码的新手。谢谢!
{
guard let CurrentCameraInput: AVCaptureInput = CaptureSession?.inputs.first else {
return
}
if let input = CurrentCameraInput as? AVCaptureDeviceInput
{
if input.device.position == .back {
SwitchToFrontCamera() }
if input.device.position == .front {
SwitchToBackCamera()
}
}
}
最佳答案
欢迎!
检查this initializer中的AVCaptureDevice
。您可以指定要使用的DeviceType
,例如.builtInUltraWideCamera
或.builtInTelephotoCamera
。
您可以使用AVCaptureDevice.DiscoverySession
获取可用于您的应用程序的所有捕获设备的列表。