17

我在我的语音聊天应用程序中使用 RemoteIO。为了启用回声消除,在将“kAudioSessionCategory_PlayAndRecord”设置为会话类型后,我将“kAudioUnitSubType_RemoteIO”更改为“kAudioUnitSubType_VoiceProcessingIO”。现在回声消除有效,但输出音量水平与之前的 RemoteIO 输出水平相比已显着下降。有谁知道在使用 VoiceProcessingIO 时如何获得与使用 RemoteIO 时相同的输出音量级别?

4

2 回答 2

4

我意识到这很长时间没有得到回答,但我发现如果您在更改音频单元之间执行以下操作:

AudioComponentInstanceDispose(_ioUnit);

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient  error:&nsError];

[[AVAudioSession sharedInstance] setActive:NO error:&nsError];

然后它似乎不会在每个单元之间产生如此巨大的响度问题。此时,只需重新初始化您的音频单元并将会话类型设置为您需要的类型。

于 2014-10-30T16:50:30.103 回答
2

我认为不可能解释产量的损失。根据RemoteIO和VPIO之间的Recording volume drop切换

“没有 API 可以控制此增益(或在您的情况下下降)级别,一切都由操作系统在内部设置,具体取决于音频会话类别(例如,VPIO 预计将始终与 PlayAndRecord 一起使用)以及已设置的 IO 单元。”

如果您说出您正在测试的 iOS,这也会有所帮助,因为它们的输出量下降不同。

于 2013-09-29T06:22:35.450 回答