Ios5 处理音频单元的音频中断时的不同结果
我已经搜索了这里的所有相关帖子和苹果文档,没有找到答案。根据苹果的示例代码aurioTouch,我有一个如下处理程序:Ios5 处理音频单元的音频中断时的不同结果,ios5,audio,core-audio,Ios5,Audio,Core Audio,我已经搜索了这里的所有相关帖子和苹果文档,没有找到答案。根据苹果的示例代码aurioTouch,我有一个如下处理程序: static void rioInterruptionListener(void *inClientData, UInt32 inInterruption) { printf("Session interrupted! --- %s ---", inInterruption == kAudioSessionBeginInterruption ?
static void rioInterruptionListener(void *inClientData, UInt32 inInterruption)
{
printf("Session interrupted! --- %s ---",
inInterruption == kAudioSessionBeginInterruption ?
"Begin Interruption" : "End Interruption");
AudioObjectImpl *THIS = (__bridge AudioObjectImpl *)inClientData;
if (inInterruption == kAudioSessionEndInterruption) {
// make sure we are again the active session
XThrowIfError(AudioSessionSetActive(true), "couldn't set audio session active");
XThrowIfError(AudioOutputUnitStart(THIS->rioUnit), "couldn't start unit");
THIS->inInterrupt = false;
}
if (inInterruption == kAudioSessionBeginInterruption) {
XThrowIfError(AudioOutputUnitStop(THIS->rioUnit), "couldn't stop unit");
THIS->unitIsRunning = false;
THIS->inInterrupt = true;
}
}
AudioObjectImpl是音频单元的所有者。
消息是执行“操作”的宏,如果捕获到异常,则打印“消息”。这是从aurioTouch示例代码中复制的
此代码对传入呼叫中断有效,通过拒绝呼叫,中断的音频被恢复。
但当我在“设置”“常规”“声音”铃声中选择铃声时,它崩溃了
崩溃点在…AudioSessionSetActivetrue…,为什么这两种情况不同?在这两种情况下,它是如何工作的