【问题标题】:Audio Recording Interrupt iOS 6 Error录音中断 iOS 6 错误
【发布时间】:2012-10-10 17:55:38
【问题描述】:

Apple 的演示项目 aurioTouch2 演示了我在录制模式下处理音频中断时遇到的相同 iOS-6 问题。

场景非常具体。在录音模式下,拨打电话,然后接听(拒绝通话不会导致错误)。然后,挂断后,应用返回焦点,无法继续录制。

错误信息是:AUIOClient_StartIO failed (2003329396) 此错误代码有助于翻译成单词“what”。

aurioTouch2 项目是 iOS-5 的更新,但不适用于 iOS-6。对于我的应用来说,这似乎是一个相当严重的错误,因为该设备是“电话”。

我已经尝试了所有合理的变化,但没有运气。有人遇到同样的问题吗? 非常感谢。

编辑:这是为我修复它的代码。该修复在 cmets 中注明。不完全优雅,但我会在这一点上采取任何措施。

此方法会在应用返回到活动状态后被调用。我让中断结束触发器设置了一个标志,然后当事情再次活跃时,我检查这个标志,然后在这里调用这个方法。

-(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);
}

【问题讨论】:

  • 我看到了同样的问题,但没有找到解决方法。在运行 iOS 6.0 的 iPhone4 上展示。
  • 在我自己的代码中,我可以把它归结为这个调用:alcMakeContextCurrent(context);通过检查不存在错误: err = alGetError();我想知道是否有可能只拆除整个音频设置并将其重新组合在一起,而不是试图优雅地处理它。
  • 我似乎可行的解决方法是首先停用音频会话,然后重新激活音频会话,然后拆除并设置音频单元等。当然,这必须完成在宿主应用返回活动状态后。
  • 嗨,听起来很有希望。您能否发布一些示例代码来阐明解决方法?将不胜感激。非常感谢。
  • 好的,我让它工作了。对我来说,它正在做你上面所说的两次。基本上,我会把所有东西都拆掉,设置好——它会因为难以理解的错误代码而失败。然后我就再做一次,它就可以了。感谢您的帮助。

标签: ios6 core-audio


【解决方案1】:

我遇到了同样的问题并找到了解决方案。

使用核心电话框架来检测来电,我通过关闭文件“不优雅地”停止录音,而不接触音频队列。然后,当应用程序恢复时,我将录制显示为暂停状态,然后用户可以恢复录制。与此同时,我重新启动了所有核心音频队列。

如果您使用 ARC,请注意 callEventHandlerCTCallCenter。它没有正确发布,所以记得将它设置为nil

【讨论】:

    猜你喜欢
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多