如何在 Xcode 中使用 AVFoundation 在 11 个专业相机之间切换

How can I switch between 11 pro cameras using AVFoundation in Xcode

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