Iphone iOS:当用户关闭时将重置音频会话属性&;重新打开应用程序?
我使用AudioUnit访问RemoteIO以获得高性能音频。我的应用程序对从麦克风接收的音频中嵌入的信号进行解码。为了保证准确性,我需要将音频过滤和操作降到最低限度。我对音频会话执行以下操作:Iphone iOS:当用户关闭时将重置音频会话属性&;重新打开应用程序?,iphone,ios,audio,core-audio,audiounit,Iphone,Ios,Audio,Core Audio,Audiounit,我使用AudioUnit访问RemoteIO以获得高性能音频。我的应用程序对从麦克风接收的音频中嵌入的信号进行解码。为了保证准确性,我需要将音频过滤和操作降到最低限度。我对音频会话执行以下操作: UInt32 mode = kAudioSessionMode_Measurement; Float32 zeroF = 0; UInt32 audioCategory = kAudioSessionCategory_PlayAndRecord; AudioSessionSetProperty(kAud
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));
这似乎是可行的,尽管肯定还有一些增益修正正在进行
我的问题是当用户按下Home按钮离开应用程序,然后点击应用程序图标返回应用程序时。音频发生了一些变化,似乎iOS正在启用噪声抑制和增益控制。这是一张音频频谱图——请注意,在整个音频频谱中,在图的中间,功率大幅下降。这是我离开应用程序然后重新打开它的时候
- X轴是时间
- Y轴为频率(0-22050 Hz)
- 像素亮度即功率(黑色=-128 dB,白色=0 dB)
您能告诉我这段代码是写在哪里的吗me@AshutoshMishra很抱歉,这是专有代码,无法发布,但要解决此问题,有必要获取更多详细信息。您可能需要检查对
AudioUnitSetProperty
的所有调用是否有错误作为起点。您是否正在处理中断和音频路由更改?