iOS 5/6:首次使用CoreAudio后音量较低

时间:2012-10-02 10:48:09

标签: ios core-audio voip volume

我在使用VoIP应用程序。 AudioSession的模式设置为kAudioSessionMode_VoiceChat。

对于一个电话,我打开一个带有子类型kAudioUnitSubType_VoiceProcessingIO的CoreAudio AudioUnit。一切正常。第一次调用后,我使用AudioUnitUninitialize()关闭AudioUnit,然后停用音频会话。

然而,现在似乎音频设备没有正确释放:铃声音量非常低,媒体播放器的音量低于平时。对于后续调用,我不能再激活kAudioUnitSubType_VoiceProcessingIO。它可以用kAudioUnitSubType_RemoteIO创建一个AudioUnit,但是调用的音量非常低(接收器和扬声器)。

第一次出现在iOS 5上。随着iOS 6上的iPhone 5,它更糟糕(甚至更低的音量)。

有没有人见过这个?我需要做的不仅仅是AudioUnitUninitialize()来释放语音处理单元吗?

2 个答案:

答案 0 :(得分:8)

我找到了解决方案:我错误地使用AudioUnitUninitialize()释放了使用AudioComponentInstanceNew()检索到的音频组件。正确的是使用AudioComponentInstanceDispose()

答案 1 :(得分:4)

是的,你需要在使用voiceProcessingIO时处理audioUnit。出于某种原因,使用RemoteIO子类型时没有问题。因此,每当您获得OSStatus -66635(kAudioQueueErr_MultipleVoiceProcessors)时,请检查是否缺少AudioComponentInstanceDispose()调用。