我试图用AVAudioSession中的"setInputGain“来设置麦克风增益,以处理非常弱的声音,但我只成功了一部分。我正在检查是否为"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和其他地方,人们都报告了问题,但他们也能够在iPads和较旧的iPhones上设置增益。据报道,我看到的唯一的“诀窍”是在设置增益之前“等待一段时间”,这是我尝试过的,但没有成功。
因此,问题是我是否遗漏了什么,以及我是否应该能够在iPads和较旧的iPhones上设置增益?
发布于 2019-04-11 19:39:56
我也很疲惫,找了将近三个小时。
唯一对我起作用的是在viewDidAppear中调用setGain方法。
https://stackoverflow.com/questions/23158868
复制相似问题