如何在后台启动记录iOS音频会话?

我试图在我的应用程序在后台被唤醒后启动kAudioSessionCategory_RecordAudio (比如在重大的位置更改期间,我已经看到商店中的其他应用程序执行此操作,因此我知道这是可能的)。 然而每当我尝试像这样开始音频会话

CheckError(AudioQueueStart(queue, NULL), "AudioQueueStart failed");

我得到这个错误:

Error: AudioQueueStart failed (-12985)

所以我对此进行了阅读,但只有建议是将音频会话设置为活动的AudioSessionSetActive(YES)但也会因'!cat'错误而失败。 显然你可以尝试切换音频会话的活动状态,但这不适合我。

我有音频背景模式plist标志设置,并启动音频会话,而我的应用程序是前沿,然后切换到另一个应用程序工作(显示红色条显示它正在录制)。 它只是开始音频会议,而应用程序不是最前沿的问题。

有没有人有一个示例项目,我可以看看展示在后台开始录制音频会话?

注意:我正在寻找一种使用音频队列的解决方案,因为我需要缓冲区中的音频,而不是文件。


事实证明,如果您只是将音频多任务标记添加到info.plist并添加适当的重要位置更改API,Apple的SpeakHere示例代码将进行一些修改,然后开始在后台录制音频。 您可能会看到https://github.com/benvium/SpeakHere获取SpeakHere的更新版本,因为Apple暂时没有更新它。


目前,iOS不允许在后台启动音频会话或录音。 应用程序必须在前台启动音频,但可以放弃任何录制的音频数据,直到需要为止,这可能在使用适当的背景模式和音频会话时位于后台。

链接地址: http://www.djcxy.com/p/13851.html

上一篇: How do I start a Record iOS audio session in the background?

下一篇: Rails 4 image directory not present in assets anymore