【问题标题】:Not able to Open a Camera for iOS无法打开适用于 iOS 的相机
【发布时间】:2019-05-05 21:27:15
【问题描述】:

我正在尝试为应用创建条形码阅读器功能。我无法获得任何相机设备。

我正在使用AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera], mediaType: AVMediaType.video, position:. back) 获取设备列表。

我正在尝试从上面的列表中获取第一台设备

但它不返回任何相机。

我还在info.plist中添加了隐私 - 相机使用说明

       func viewDidLoad() {

            let deviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera], mediaType: AVMediaType.video, position:. back)

            guard let captureDevice = deviceDiscoverySession.devices.first else{
            print("Failed to get the camera device")
            return
            }

       do{

            // get an instance of the AVCaptureDeviceInput class using the previous device object

            let input = try AVCaptureDeviceInput(device: captureDevice)

            

            //Set the input device on the capture session

            captureSession?.addInput(input)

            

            // Initialize a AVCaptureMetadataOutput object and set it as the output device to the capture session

            let captureMetadataOutput = AVCaptureMetadataOutput()

            captureSession?.addOutput(captureMetadataOutput)

            

            //Set delegate and use the default dispatch queue to execute the call back

            captureMetadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)

            captureMetadataOutput.metadataObjectTypes = [AVMetadataObject.ObjectType.qr]

            

            //Initialize the video preview layer and add it as a subLayer to the viewPreview view

            videoPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession!)

            videoPreviewLayer?.videoGravity = AVLayerVideoGravity.resizeAspectFill

            videoPreviewLayer?.frame = view.layer.bounds

            view.layer.addSublayer(videoPreviewLayer!)

            

            //Start video capture.

            captureSession?.startRunning()

        } catch {

            // if any error occurs, print it out and don't continue any more

            print(error)

            return

        }
}

我希望它启动相机;但是,它反而给了我以下错误:

2019-05-05 16:17:46.609442-0500 BarCode[964:302791] [MC] systemgroup.com.apple.configurationprofiles 路径的系统组容器是 /private/var/containers/Shared/SystemGroup/systemgroup。 com.apple.configurationprofiles

2019-05-05 16:17:46.609962-0500 BarCode[964:302791] [MC] 从公共有效用户设置中读取。

获取摄像头设备失败。

【问题讨论】:

    标签: ios swift avfoundation


    【解决方案1】:

    可能就像错误中提到的那样。该设备没有任何.builtInDualCamera 选项可用。

    你可以尝试的普通相机类型是

    let deviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera], mediaType: AVMediaType.video, position: .back)
    

    如果您确实需要.builtInDualCamera,您可以按照Apple 文档的建议执行if...else 检查备用计划。

    Building a Camera App

    【讨论】:

      猜你喜欢
      • 2012-03-14
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      相关资源
      最近更新 更多