Apple的演示项目aurioTouch2演示了在录制模式下处理音频中断时遇到的iOS-6问题.
该场景非常具体.当处于录音模式时,进行电话呼叫,然后应答(拒绝呼叫不会导致错误).然后,挂断后,应用程序返回焦点,无法继续录制.
错误消息是:AUIOClient_StartIO失败(2003329396)
此错误代码有助于翻译“what”一词.
aurioTouch2项目是iOS-5的更新,但不适用于iOS-6.对于我的应用来说,这似乎是一个相当严重的错误,因为该设备是“手机”.
我没有运气就尝试过每一个明智的变化.有人遇到过同样的问题吗?
非常感谢.
编辑:这是为我修复它的代码.修复程序在注释中注明.不完全优雅,但我会在这一点上采取任何措施.
在应用程序返回活动状态后的某个时刻调用此方法.我有中断结束触发器设置一个标志,然后当事情再次活着时,我检查标志然后在这里调用此方法.
-(void) handleEndInterruption { // Reset audio session UInt32 category = kAudioSessionCategory_PlayAndRecord; AudioSessionSetProperty ( kAudioSessionProperty_AudioCategory,sizeof (category),&category ); // Reactivate the current audio session AudioSessionSetActive(YES); // Do this,and fail with: AUIOClient_StartIO Failed (2003329396) [self createAUProcessingGraph]; [self initializeAndStartProcessingGraph]; // Do it a second time and it works AudioSessionSetActive(NO); AudioSessionSetActive(YES); [self createAUProcessingGraph]; [self initializeAndStartProcessingGraph]; // Restore open al context alcMakeContextCurrent([AudioDispatcher sharedInstance].audioContext); // 'unpause' my context alcProcessContext([AudioDispatcher sharedInstance].audioContext); }