为什么iPhone底部麦克风音量在插入耳机和不插入耳机时有所不同



我正在创建一个应用程序,该应用程序使用iPhone底部麦克风录制或没有插入耳机。我的问题是插入耳机录制比使用耳机录制要低得多耳机未插入。

当耳机插入,这样录制的音量就和不带耳机时一样。我试过调整AVAudioSession.inputGain,但效果相同。

根据应用程序的意图,会想到一些事情。

  1. 我发现,如果用户不想将设备靠近面部(即打电话),使用Front麦克风更适合录音
  2. 配置数据源极性模式&根据使用环境的不同,定向也会产生巨大的影响。查看AVAudioSessionDataSourceDescription的类引用
  3. 如果您愿意使用音频单元进行输入处理,启用语音处理IO效果单元可以显著提高捕获的质量和音量。请参阅下面的示例。

    AudioComponentDescription desc;
    desc.componentType         = kAudioUnitType_Output;
    desc.componentSubType      = kAudioUnitSubType_VoiceProcessingIO;
    desc.componentManufacturer = kAudioUnitManufacturer_Apple;
    desc.componentFlags        = 0;
    desc.componentFlagsMask    = 0;
    

我将类别模式设置为AVAudioSessionModeMeasurement。将其设置为AVAudioSessionModeDefault解决了我的问题。