我正在尝试使用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和其他地方,人们都在报告问题,但是他们也能够在iPad和旧版iPhone上获得 yield 。我看到的唯一一个“技巧”就是在设置增益之前“等待一段时间”,这是我尝试的没有成功的尝试。

所以问题是我是否错过了什么,是否应该能够在iPad和旧版iPhone上获得 yield ?

最佳答案

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

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

09-13 07:01