在后台iOS中录制分块音频

alo*_*loo 4 iphone core-audio audio-recording avaudiorecorder ios

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

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

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

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

有任何想法吗?

这是我的回调代码:

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

    [self initRecorder];

    [recorder recordForDuration:5];

}
Run Code Online (Sandbox Code Playgroud)

hot*_*aw2 6

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

因此,请使用音频队列或音频单元RemoteIO API,这将为您提供较小的"块"(回调缓冲区块)音频,而无需停止录音.

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