我刚开始在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获取可用于您的应用程序的所有捕获设备的列表。

07-27 22:20