首页 > 解决方案 > 如何在 Xcode 中使用 AVFoundation 在 11 个专业相机之间切换

问题描述

我刚刚开始在 Xcode 中学习 Swift,并且正在创建一个简单的相机应用程序来启动和运行。我有一个按钮,可以在前置和后置摄像头之间切换,但我想添加一个选项,以便在 iPhone 11 Pro 上的 Tele 和 Ultra Wide 镜头之间切换。

我已经创建了为每个镜头运行新 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()

              }



            }
        } 

标签: iosswiftxcodeavfoundation

解决方案


欢迎!

检查你的这个初始化程序AVCaptureDevice。您可以指定DeviceType要使用的 ,例如.builtInUltraWideCamera.builtInTelephotoCamera

您可以使用 aAVCaptureDevice.DiscoverySession获取应用程序可用的所有捕获设备的列表。


推荐阅读