代码之家  ›  专栏  ›  技术社区  ›  dre_84w934

如何在AVCapture设备输入上禁用摄像头麦克风

  •  13
  • dre_84w934  · 技术社区  · 7 年前

    我正在将麦克风设置在 AVCaptureSession 我需要一个麦克风的开关。我应该如何继续? 我真的需要 captureSession?.removeInput(microphone) ,还是有一个简单的方法?

    let microphone = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeAudio)
    
            do {
                let micInput = try AVCaptureDeviceInput(device: microphone)
                if captureSession.canAddInput(micInput) {
                    captureSession.addInput(micInput)
                }
            } catch {
                print("Error setting device audio input: \(error)")
                return false
            }
    
    2 回复  |  直到 7 年前
        1
  •  9
  •   Walter    7 年前

    您可以始终保持麦克风输入连接,然后使用开关决定如何处理音频缓冲区。如果开关关闭,则不要处理音频数据。我找到了一个 objc.io article 这涉及到如何在使用AVAssetWriter写入数据之前设置单独的音频和视频缓冲区。

        2
  •  1
  •   Santosh Botre    5 年前

    默认情况下,将启用连接公开的所有AVCaptureAudioChannel对象。您可以将enabled设置为false,以停止特定通道的数据流。

    https://developer.apple.com/documentation/avfoundation/avcaptureaudiochannel/1388574-isenabled