最近,我一直在爲iOS設計一個非常具體的項目,並且我的研究將我引向幾乎最終的代碼。我已經解決了迄今爲止我發現的所有極端困難,但是在這個問題上我似乎沒有任何線索(關於原因或解決問題的可能性)。AudioToolbox - 記錄時的回撥延遲
我建立了我的音頻序列(採樣率44100,格式LinearPCM,每個通道16位,每幀2個字節,每個通道1個通道...),並開始用12個音頻緩衝區錄製聲音。但是,每回調4次後似乎都會有延遲。
情況如下:前4個回調被調用,每個間隔約爲2 ms。但是,在4日和5日之間,有60毫秒的延遲。同樣的事情發生在8日和9日,12日和13日之間...
似乎有每幀字節和延遲時刻之間的關係。我知道這一點,因爲如果我改變到每幀4字節,我開始在8日和9日之間,然後在16日和17日,24日和25日之間......但似乎並沒有延遲時間與緩衝區數量之間的任何關係。
回調函數只做兩件事:將音頻數據(inBuffer-> mAudioData)存儲在我的類可以使用的數組上;並調用另一個AudioQueueEnqueueBuffer,將當前緩衝區放回隊列中。
有沒有人已經經歷過這個問題?至少有誰知道可能是什麼原因呢?
預先感謝您。
非常感謝您,這正是我一直在尋找的途徑。我花了幾個小時用RemoteIO API重寫我的代碼,因爲文檔和示例代碼並不簡單,並且有很多「陷阱」可以理解。但現在它終於有效了,我可以說你的答案是完美的。沒有任何延遲,但是可以以最快的配置實現約2.94ms(在iPhone 4上)的非常穩定的序列。 –