Apple 的演示项目 aurioTouch2 演示了我在录制模式下处理音频中断时遇到的相同 iOS-6 问题。
场景非常具体。在录音模式下,拨打电话,然后接听(拒绝通话不会导致错误)。然后,挂断后,应用程序恢复焦点,无法继续录制。
错误消息是:AUIOClient_StartIO failed (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);
}