How to disable camera microphone on AVCapture device input

By default, all AVCaptureAudioChannel objects exposed by a connection are enabled. You may set enabled to false to stop the flow of data for a particular channel.

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


You can always just leave the mic input attached and then using your switch decide what to do with the audio buffer. If the switch is off then don't process the audio data. I found an objc.io article that talks about how to set up the separate audio and video buffers before writing the data with an AVAssetWriter.