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

问题描述 投票:13回答:2

我在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
        }
ios swift avcapturesession avcapturedevice
2个回答
9
投票

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


1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.