Ios6 音频录制中断iOS 6错误

Ios6 音频录制中断iOS 6错误,ios6,core-audio,Ios6,Core Audio,苹果的演示项目aurioTouch2演示了我在录音模式下处理音频中断时遇到的相同iOS-6问题 情况非常具体。在录音模式下,会拨打电话,然后接听(拒绝通话不会导致错误)。然后,挂断后,应用程序返回焦点,无法继续录制 错误消息是:AUIOClient_StartIO失败(2003329396) 此错误代码可有效地转换为单词“what” aurioTouch2项目是iOS-5的更新,但不适用于iOS-6。对于我的应用程序来说,这似乎是一个相当严重的错误,因为该设备是一部“手机” 我尝试过每一种合理的

苹果的演示项目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);
}

我遇到了同样的问题并找到了解决办法

使用核心电话框架来检测传入呼叫,我通过关闭文件来停止录制,而不触及音频队列。然后,当应用程序恢复时,我在暂停状态下显示录制,然后用户可以恢复录制。与此同时,我重新启动了所有核心音频队列


如果您使用ARC,请小心使用
CTCallCenter
callEventHandler
。它没有正确发布,所以请记住将其设置为
nil

我看到了相同的问题,但没有找到解决方法。出现在运行iOS 6.0的iPhone4上。在我自己的代码中,我可以将其归结为以下调用:alcMakeContextCurrent(上下文);通过检查此项,不存在任何错误:err=algerorr();我想知道是否有可能只是拆掉整个音频设置并将其重新组合起来,而不是试图优雅地对待它。我的解决方法似乎是先停用音频会话,然后重新激活音频会话,然后拆卸和设置音频单元等。当然,这必须在主机应用程序返回活动状态后完成。嗨,听起来很有希望。您能否发布一些示例代码来澄清解决方法?我将不胜感激。非常感谢。好的,我开始工作了。对我来说,就是按照你上面说的做了两次。基本上,我会把所有的东西都拆下来,设置好它——它会失败,错误代码难以捉摸。然后我再做一次就行了。谢谢你的帮助。