4

我正在尝试找出一种在 iOS 应用程序的后台录制音频并将其流式传输到服务器的方法。

当应用程序处于前台时,我几乎可以正常工作。我使用 AVAudioRecorder 记录输入 X 秒。一旦我得到完成的回调,我再记录 X 秒。每个录制会话都存储到不同的文件中,我将这些文件异步发送到服务器。

但是,当我的应用程序进入后台模式时,这似乎不起作用。

进入后台时,当前录制会话会继续录制,直到 X 秒结束,但是我的应用程序会暂停,然后我才能开始另一个录制会话。

有任何想法吗?

这是我的回调代码:

- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)aRecorder successfully:(BOOL)flag {
    NSLog(@"hello");

    [self initRecorder];

    [recorder recordForDuration:5];

}
4

2 回答 2

6

您无法在后台重新开始录制。

因此,请改用音频队列或音频单元 RemoteIO API,这将为您提供更小的音频“块”(回调缓冲区块),而不会停止音频录制。

如果您的网络协议需要,将小的音频回调块连接成更大的文件块。

于 2011-03-24T16:17:01.140 回答
1

多任务处理支持背景音频播放,但背景音频录制不是很清楚。但是,我还没有尝试过。Audio Unit API 可以让您在应用程序处于后台时继续录制音频。然而,这是一种诡计,我想它可能会在某个时候被拉出来。

于 2011-03-24T16:18:06.397 回答