AVCaptureSession: agregar / eliminar DeviceInput

Estoy intentando implementar una function donde puedes activar o desactivar el micrófono durante una AVCaptureSession. Así es como habilito el dispositivo (initialization)

-(void)initMicrophoneInput:(AVCaptureSession*)session{ AVCaptureDevice *audioDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio]; _microphoneInput = [[AVCaptureDeviceInput alloc] initWithDevice:audioDevice error:nil]; if ([session canAddInput:_microphoneInput]){ [session addInput:_microphoneInput]; } else { NSLog(@"can't add input"); } } 

Y esta es mi function para deshabilitar / habilitar el micrófono:

 - (IBAction)manageMicrophone:(id)sender { [_captureSession beginConfiguration]; if(_microphoneMuted == NO){ [_captureSession removeInput:_microphoneInput]; }else{ [self initMicrophoneInput:_captureSession]; } [_captureSession commitConfiguration]; _microphoneMuted = !_microphoneMuted; } 

La initialization y la eliminación del micrófono funcionan bien, pero luego no puedo volver a habilitar el micrófono. Mi _captureSession.inputs contiene el dispositivo "micro" pero ya no obtengo muestras de audio de - (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection;