使用AVAudioSession设置麦克风增益时的不稳定行为

时间:2014-04-18 17:16:05

标签: ios iphone ipad audio avaudiosession

我正在尝试使用" setInputGain"设置麦克风增益。在AVAudioSession中处理非常微弱的声音,但我只是部分成功。我正在检查" isInputGainSettable"然后我尝试用滑块改变增益。我正在检查增益是否实际发生变化,通过回读值并检查实际录制的声音。结果如下:

enter image description here

我正在使用的代码

-(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上设置增益?

1 个答案:

答案 0 :(得分:0)

我也筋疲力尽,搜寻了将近三个小时。

对我唯一有用的是在setGain中调用viewDidAppear方法。