Я пытаюсь установить усиление микрофона с помощью «setInputGain» в AVAudioSession для обработки очень слабых звуков, но мне это удается лишь частично. Я проверяю, является ли «isInputGainSettable», а затем пытаюсь изменить усиление с помощью ползунка. Я проверяю, действительно ли изменяется усиление, как путем считывания значения, так и проверки фактического записанного звука. Результат выглядит следующим образом:
Код, который я использую
-(void)viewDidLoad
{
self.audioSession = [AVAudioSession sharedInstance];
if(self.audioSession.isInputGainSettable){
[self.audioSession setActive:YES error:nil];
}
}
-(IBAction)setGain:(id)sender
{
float gain = self.gainSlider.value;
NSError* error;
BOOL gainset = [self.audioSession setInputGain:gain error:&error];
if (!gainset) NSLog(@"failed %@", error);
NSLog(@"audiosession gain: %.2f ",self.audioSession.inputGain);
}
Я не получаю никаких сообщений об ошибках. Я искал SO и в других местах, и люди сообщают о проблемах, но также и о том, что они могут установить усиление на iPad и старых iPhone. Единственный «трюк», о котором я слышал, это «подождать некоторое время» перед установкой усиления, что я пробовал безуспешно.
Итак, вопрос в том, есть ли что-то, что я пропустил, и должен ли я установить усиление на iPad и старых iPhone?