在我使用VoiceChat模式时,我自己的应用程序中的音频问题太低了,所以作为白痴检查我下载了Apple的音频单元编程示例代码(SpeakHere)并添加了VoiceChat模式那个应用程序事实证明,问题也出现在那里:在该模式下运行会导致一切都达到所需音量的20%左右。
我在PlayAndRecord类别设置后立即在SpeakHereController.mm的第267行添加了此代码:
// set mode -- this results in audio being too soft
UInt32 mode = kAudioSessionMode_VoiceChat;
error = AudioSessionSetProperty(kAudioSessionProperty_Mode, sizeof(mode), &mode);
if (error) printf("couldn't set audio session mode!");
我正在使用带有RemoteIO的VoiceChat模式,以便在扬声器电话使用时获得回声消除功能; VoiceProcessingIO工作(有点),但旧款iPhone(3GS)的性能非常差,无法使用 - 这就是我使用RemoteIO的原因。我已经确认扬声器路线是正确的。我甚至尝试过设置测量模式并手动增加增益 - 我无法检测到任何改进。
有关使用AudioSession模式时防止大音量下降的任何建议吗?
答案 0 :(得分:1)
事实证明,当VoiceChat模式设置为确定增益,回声消除等的最佳设置时,会使用/ current / audio路径。这意味着如果您要设置特定路线,则需要在设置模式之前执行此操作 - 而不是之后。
按此顺序执行此操作可以解决我的音量问题: