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

对于通话,我打开了一个子音频为kAudioUnitSubType_VoiceProcessingIO的CoreAudio AudioUnit。一切正常。第一次通话后,我使用AudioUnitUninitialize()关闭AudioUnit,然后停用 Audio Session 。

但是,现在好像音频设备没有正确释放:铃声音量非常低,媒体播放器的音量比平时低。对于随后的调用,我无法再激活kAudioUnitSubType_VoiceProcessingIO。它可以代替使用kAudioUnitSubType_RemoteIO创建AudioUnit,但是调用的音量非常低(包括接收者和扬声器)。

这首先发生在iOS 5上。在iOS 6上使用iPhone 5时,甚至更糟(甚至更低的音量)。

有人看过吗?要释放语音处理单元,是否需要做比AudioUnitUninitialize()更多的事情?

最佳答案

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

10-08 00:17