簡體   English   中英

AudioToolbox - 錄音時的回調延遲

[英]AudioToolbox - Callback delay while recording

最近,我一直在為 iOS 開展一個非常具體的項目,我的研究使我得到了幾乎最終的代碼。 到目前為止,我已經解決了我發現的所有極端困難,但是在這一點上我似乎沒有任何線索(關於解決它的原因和可能性)。

我設置了我的音頻隊列(采樣率 44100,格式 LinearPCM,每通道 16 位,每幀 2 字節,每幀 1 通道......)並開始使用 12 個音頻緩沖區錄制聲音。 但是,每 4 次回調后似乎會有延遲。

情況如下:前 4 個回調的調用間隔約為 2 毫秒。 但是,在第 4 和第 5 之間,有大約 60ms 的延遲。 同樣的事情發生在 8 號和 9 號之間,12 號和 13 號之間……

每幀的字節數和延遲時間之間似乎存在關系。 我知道這一點,因為如果我更改為每幀 4 個字節,我會在第 8 和第 9 之間開始延遲,然后在第 16 和第 17、第 24 和第 25 之間......盡管如此,似乎沒有延遲時刻與緩沖區數量之間的任何關系。

回調 function 只做兩件事:將音頻數據 (inBuffer->mAudioData) 存儲在我的 class 可以使用的數組中; 並調用另一個 AudioQueueEnqueueBuffer,將當前緩沖區放回隊列中。

有人 go 已經解決了這個問題嗎? 有誰知道,至少,這可能是什么原因?

先感謝您。

音頻隊列 API 似乎在 RemoteIO 音頻單元 API 之上運行,其實際音頻緩沖區大小可能與您的音頻隊列緩沖區大小無關,並且在您的示例中大於任何大小。 因此,只要 RemoteIO 緩沖區准備就緒,一堆較小的 AQ 緩沖區就會很快被填滿。 然后你會得到更長的延遲,等待一些更大的緩沖區被樣本填充。

如果您想要更好地控制(更均勻間隔)緩沖延遲,請嘗試直接使用 RemoteIo 音頻單元。

暫無
暫無

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

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