Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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 自定义摄像头,当我用后置摄像头录制视频时,视频不会与音频一起播放_Swift_Xcode_Avfoundation_Avcapturesession_Avcapturedevice - Fatal编程技术网

Swift 自定义摄像头,当我用后置摄像头录制视频时,视频不会与音频一起播放

Swift 自定义摄像头,当我用后置摄像头录制视频时,视频不会与音频一起播放,swift,xcode,avfoundation,avcapturesession,avcapturedevice,Swift,Xcode,Avfoundation,Avcapturesession,Avcapturedevice,我试图使定制相机工作得很好,但当我把相机切换到后位置时,视频正在录制,但没有声音,当我换到前位置时,它工作得很好,这是我的全部代码。如果有人能帮我,我真的很感激 ` func changeCamera(){ guard let input = session!.inputs[0] as? AVCaptureDeviceInput else { return } // Begin new session configuration and defer commi

我试图使定制相机工作得很好,但当我把相机切换到后位置时,视频正在录制,但没有声音,当我换到前位置时,它工作得很好,这是我的全部代码。如果有人能帮我,我真的很感激

    ` func changeCamera(){

    guard let input = session!.inputs[0] as? AVCaptureDeviceInput else { return }

        // Begin new session configuration and defer commit
    session!.beginConfiguration()
       defer { session!.commitConfiguration() }
        // Create new capture device
        var newDevice: AVCaptureDevice?

        if input.device.position == .back {

            newDevice = cameraWithPosition(position: .front)

        }else{
            newDevice = cameraWithPosition(position: .back)

    }
//创建新的捕获输入 var设备输入:AVCaptureDeviceInput

        do {
            deviceInput = try AVCaptureDeviceInput(device: newDevice!)
        } catch let error {
            print(error.localizedDescription)
            return
        }

        //session!.removeInput(input)
    if let inputs = session!.inputs as? [AVCaptureDeviceInput] {
        for input in inputs {
            session!.removeInput(input)

        }
    }

            session!.addInput(deviceInput)
    }

    func cameraWithPosition(position: AVCaptureDevice.Position) -> AVCaptureDevice? {

     let deviceDescoverySession = AVCaptureDevice.DiscoverySession.init(deviceTypes: [AVCaptureDevice.DeviceType.builtInWideAngleCamera],                                                                             mediaType: AVMediaType.video,position: AVCaptureDevice.Position.unspecified)
       for device in deviceDescoverySession.devices {
            if device.position == position {
                return device
            }
        }
   return nil
     }`