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

如何在后台启动录制iOS音频会话?,ios,core-audio,record,background-process,audioqueueservices,Ios,Core Audio,Record,Background Process,Audioqueueservices,当我的应用程序在后台而不是前台被唤醒后,我正试图启动一个kAudioSessionCategory\u RecordAudio(比如在一次重大的位置变更期间,我看到商店中的其他应用程序也这样做,所以我知道这是可能的)。但是,每当我尝试像这样启动音频会话时 CheckError(AudioQueueStart(队列、, 空), “启动失败”); 我得到这个错误: 错误:AudioQueueStart失败(-12985) 所以我读了这篇文章,但唯一的建议是将音频会话设置为活动AudioSessio

当我的应用程序在后台而不是前台被唤醒后,我正试图启动一个
kAudioSessionCategory\u RecordAudio
(比如在一次重大的位置变更期间,我看到商店中的其他应用程序也这样做,所以我知道这是可能的)。但是,每当我尝试像这样启动音频会话时

CheckError(AudioQueueStart(队列、,
空),
“启动失败”);

我得到这个错误:

错误:AudioQueueStart失败(-12985)

所以我读了这篇文章,但唯一的建议是将音频会话设置为活动
AudioSessionSetActive(YES)
,但如果
,也会失败!cat'
错误。显然,你可以尝试切换音频会话的活动状态,但这对我不起作用

我设置了音频背景模式plist标志,在我的应用程序处于forefront状态时启动音频会话,然后切换到另一个应用程序工作(显示红色条,显示正在录制)。问题在于,当应用程序不在前端时,它只是启动音频会话

是否有人有一个示例项目我可以在后台演示如何开始录制音频会话


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

目前,iOS不允许在后台启动音频会话或音频录制。应用程序必须在前台启动音频,但可以在需要时丢弃任何录制的音频数据,当使用适当的后台模式和音频会话时,它可能在后台。

事实证明,如果您只需将音频多任务标记添加到info.plist并添加适当的显著位置更改API,经过一些修改的Apple SpeakHere示例代码将开始在后台录制音频。你可能会在这里寻找SpeakHere的更新版本,因为苹果已经有一段时间没有更新过它了。

像GPS导航这样的应用程序在当前没有发出方向音的情况下如何工作,然后用户切换到音乐应用程序并播放音乐,直到GPS导航应用程序发出新的方向音,然后音乐应用程序接管扬声器再一次。我想如果你可以在应用程序处于后台时开始播放,你就可以开始录制了。@hotpaw2,“sleep talk recorder”的实时应用程序可以完美地工作,并支持在后台录制一整天。所以,应该有一种方法,可以在后台记录一整天。以下是live应用程序链接:可能这些应用程序在前台和进入后台之前都会启用音频会话。音频多任务标志到底是什么?请解释一下