目前不支持多个音频/视频AVCaptureInput

时间:2017-03-17 23:38:44

标签: swift avfoundation

我收到以下错误:目前不支持多个音频/视频AVCaptureInputs。以下行发生此问题:

 g.captureSession.addInput(AVCaptureDeviceInput(device: captureDevice))

所以我在互联网上搜索并看到了这个解决方案:

if(g.captureSession.inputs.isEmpty){
   try g.captureSession.addInput(AVCaptureDeviceInput(device: captureDevice))
}

但这不起作用,因为它不是空的?!即使这是第一次。所以输入永远不会被添加。

这是我的实际代码:

let g = peerConnectionFactory.avFoundationVideoSource(with: nil);
        g.captureSession.sessionPreset = AVCaptureSessionPresetHigh

    let devices = AVCaptureDevice.devices()
    for device in devices! {
        if ((device as AnyObject).hasMediaType(AVMediaTypeVideo)) {
            if((device as AnyObject).position == AVCaptureDevicePosition.front) {
                let captureDevice = device as? AVCaptureDevice
                if captureDevice != nil {

                    do{
                        try g.captureSession.addInput(AVCaptureDeviceInput(device: captureDevice))

                        g.captureSession.startRunning()
                    } catch {
                        print("we have error")
                    }

                }
            }
        }
    }

我该如何解决这个问题?我做错了什么?

1 个答案:

答案 0 :(得分:0)

您正在添加多个输入,因为您正在使用多台摄像机。

所以你得到了错误。

首先查找并存储设备。

然后只为其中一个使用addInput。