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

aud*_*der 8 record core-audio background-process audioqueueservices ios

我试图kAudioSessionCategory_RecordAudio在我的应用程序在后台唤醒但不是最前沿(例如在重要的位置更改期间,我已经看到商店中的其他应用程序执行此操作,因此我知道它是可能的).但是每当我尝试像这样开始音频会话时

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

我收到此错误:

Error: AudioQueueStart failed (-12985)

所以我读到了这一点,但只有建议是将音频会话设置为活动,AudioSessionSetActive(YES)但也会因'!cat'错误而失败.显然你可以尝试切换音频会话的活动状态,但这对我没用.

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

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

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

aud*_*der 4

事实证明,如果您只需将音频多任务处理标志添加到 info.plist 并添加适当的重要位置更改 API,经过一些修改的 Apple 的 SpeakHere 示例代码将开始在后台录制音频。您可能会在https://github.com/benvium/SpeakHere上查找SpeakHere 的更新版本,因为 Apple 已经有一段时间没有更新它了。

  • 音频多任务标志到底是什么?请解释 (2认同)