Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 当前不支持多个音频/视频AVCaptureInputs_Swift_Avfoundation - Fatal编程技术网

Swift 当前不支持多个音频/视频AVCaptureInputs

Swift 当前不支持多个音频/视频AVCaptureInputs,swift,avfoundation,Swift,Avfoundation,我发现以下错误:当前不支持多个音频/视频AVCaptureInputs。以下行出现此问题: g.captureSession.addInput(AVCaptureDeviceInput(device: captureDevice)) 所以我在互联网上搜索并看到了这个解决方案: if(g.captureSession.inputs.isEmpty){ try g.captureSession.addInput(AVCaptureDeviceInput(device: captureDev

我发现以下错误:当前不支持多个音频/视频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")
                    }

                }
            }
        }
    }

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

您添加了多个输入,因为您使用的设备有多个摄像头

所以你得到了错误

首先查找并存储设备


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

尝试在do{}catch{}@DisableR之后添加'break'。