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

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

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

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

这首先发生在iOS 5上.随着iOS 6上的iPhone 5,它甚至更糟(甚至更低的音量).

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

解决方法

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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...