iOS:在用户关闭时重置AudioSession属性&重新打开应用程序?

时间:2013-05-28 20:56:07

标签: iphone ios audio core-audio audiounit

我正在使用AudioUnit访问RemoteIO以获得高性能音频。我的应用程序解码嵌入在从麦克风接收的音频中的信号。为了准确,我需要保持音频过滤和把操作降到最低限度。我这样做是为了音频会议:

UInt32 mode = kAudioSessionMode_Measurement;
Float32 zeroF = 0;
UInt32 audioCategory = kAudioSessionCategory_PlayAndRecord;
AudioSessionSetProperty(kAudioSessionProperty_Mode, sizeof(mode), &mode);
AudioSessionSetProperty(kAudioSessionProperty_InputGainScalar, sizeof(zeroF), &zeroF);
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(audioCategory), &audioCategory);

这是音频单元:

UInt32 one = 1;
UInt32 zero = 0;
AudioUnitSetProperty(rioUnit, kAUVoiceIOProperty_BypassVoiceProcessing, kAudioUnitScope_Input, 0, &one, sizeof(one));
AudioUnitSetProperty(rioUnit, kAUVoiceIOProperty_VoiceProcessingEnableAGC, kAudioUnitScope_Input, 0, &zero, sizeof(zero));
AudioUnitSetProperty(rioUnit, kAUVoiceIOProperty_DuckNonVoiceAudio, kAudioUnitScope_Input, 0, &zero, sizeof(zero));

这似乎有效,尽管肯定还会有一些增益修正。

我的问题是当用户按下主页按钮离开应用程序,然后点击应用程序图标返回到该应用程序。关于音频的一些变化,似乎iOS正在启用噪声抑制和增益控制。这是音频的频谱图 - 注意整个音频频谱中功率的巨大下降,在图表的中间。这是我离开应用程序然后重新打开它。

  • X轴是时间
  • Y轴是频率(0-22050 Hz)
  • 像素亮度是功率(黑色= -128 dB,白色= 0 dB)

我觉得我已经尝试了所有东西 - 停止&重启音频单元,停止和重新启动音频会话...似乎没有任何帮助。会喜欢任何尝试的提示。

spectrogram

0 个答案:

没有答案