首页 > 解决方案 > 自定义摄像头,当我用后置摄像头录制视频时,视频不播放音频

问题描述

我正在尝试使自定义相机工作得很好,但是当我将相机切换到后置位置时,视频正在录制,但没有声音,当我更改为前置时,它工作得很好,这是我的完整代码。如果有人可以帮助我,我真的很感激。

    ` 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 deviceInput: 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
     }`

标签: swiftxcodeavfoundationavcapturesessionavcapturedevice

解决方案


推荐阅读