簡體   English   中英

在后台iOS中錄制分塊音頻

[英]Recording Chunked Audio in Background iOS

我試圖找出一種在iOS應用程序的后台錄制音頻並將其流式傳輸到服務器的方法。

當應用程序處於前台時,我幾乎得到了這個功能。 我使用AVAudioRecorder記錄X秒的輸入。 一旦我得到完成的回調,我再記錄X秒。 每個記錄會話都存儲到不同的文件中,我將這些文件異步發送到服務器。

但是,當我的應用程序進入后台模式時,這似乎不起作用。

當進入后台時,當前記錄會話繼續記錄,直到X秒開始,但是我的應用程序被暫停,然后才能開始另一個記錄會話。

有任何想法嗎?

這是我的回調代碼:

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

    [self initRecorder];

    [recorder recordForDuration:5];

}

您無法在后台重新開始錄制。

因此,請使用音頻隊列或音頻單元RemoteIO API,這將為您提供較小的“塊”(回調緩沖區塊)音頻,而無需停止錄音。

如果您的網絡協議需要,將小型音頻回調塊連接成更大的文件塊。

多任務支持背景音頻播放,但背景音頻錄制不是很清楚。 但是,我還沒試過。 當應用程序在后台時,Audio Unit API可能允許您繼續錄制音頻。 然而,這是一種技巧,我想想它可能會在某些時候被拉出來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM