AVFoundation Control de volumen de grabación de video

Estoy trabajando en una aplicación que tiene grabación de video y el usuario puede ajustar el volumen en ella. Lo he hecho usando AVFoundation. AVCaptureSession y agregué AVCaptureAudioDataOutput y AVCaptureVideoDataOutput como salida de audio y video. También adjunto un trozo de código aquí.

  AVCaptureSession *session = _captureSession; if (![session.sessionPreset isEqualToString:_captureSessionPreset]) { if ([session canSetSessionPreset:_captureSessionPreset]) { session.sessionPreset = _captureSessionPreset; } else { newError = [VideoRecorder createError:@"Cannot set session preset"]; } } _videoOutputAdded = NO; if (self.videoConfiguration.enabled) { if (_videoOutput == nil) { _videoOutput = [[AVCaptureVideoDataOutput alloc] init]; _videoOutput.alwaysDiscardsLateVideoFrames = NO; [_videoOutput setSampleBufferDelegate:self queue:_sessionQueue]; } if (![session.outputs containsObject:_videoOutput]) { if ([session canAddOutput:_videoOutput]) { [session addOutput:_videoOutput]; _videoOutputAdded = YES; } else { if (newError == nil) { newError = [VideoRecorder createError:@"Cannot add videoOutput inside the session"]; } } } else { _videoOutputAdded = YES; } } _audioOutputAdded = NO; if (self.audioConfiguration.enabled) { if (_audioOutput == nil) { _audioOutput = [[AVCaptureAudioDataOutput alloc] init]; [_audioOutput setSampleBufferDelegate:self queue:_sessionQueue]; } if (![session.outputs containsObject:_audioOutput]) { if ([session canAddOutput:_audioOutput]) { [session addOutput:_audioOutput]; _audioOutputAdded = YES; } else { if (newError == nil) { newError = [VideoRecorder createError:@"Cannot add audioOutput inside the sesssion"]; } } } else { _audioOutputAdded = YES; } } 

¿Cómo puedo ajustar el volumen de AVCaptureConnection asociado con este AVCaptureSession porque parece que solo está disponible para Mac?

¿Cómo puedo ajustar el volumen de grabación durante la grabación?

Por favor, avíseme si hay alguna otra forma de implementar esto.