У меня возникли проблемы с настройкой входного усиления при записи с использованием AVAudioSession и AVAudioRecorder из фреймворка AVFoundations. Я нашел метод setInputGain, который принимает число с плавающей запятой [0.0, 1.0]. Пока это выглядит примерно так:
На мой взглядDidLoad:
//Initialise the AVAudioSession, and share between different functions
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
[audioSession setActive:YES error:nil];
[audioSession setInputGain:1.0 error:nil];
Однако метод setInputGain дает вам только дополнительное усиление поверх того, что в данный момент записывается, поэтому установка его на 0,0 не приведет к его отключению, но установка на 1,0 сделает вход громче. В классе AudioSession я нашел свойство kAudioSessionProperty_InputGainScalar, но не могу записать в него значение. Мне нужна небольшая помощь, пожалуйста.
Это функция записи, которая следует за другим руководством:
//Creating a temporary place to record
tempRecFile = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"sound.caf"]];
recorder = [[AVAudioRecorder alloc] initWithURL:tempRecFile
settings:nil
error:nil];
[recorder setDelegate:self];
//Setting the input gain for the recording, then proceed to record
//[audioSession setInputGain:inputGainSlider.value error:nil];
[recorder prepareToRecord];
[recorder record];
[self.inputGainSlider setEnabled:NO];