2009-12-28 64 views
1

我整晚都在努力想辦法解決這個問題。我的代碼基本上與Apple的示例here相同。但是,該設備僅播放放置在隊列中的FIRST緩衝區(我聽到應用程序啓動時第一個緩衝區的內容)。之後,設備根本沒有聲音。由於AQS繼續激活我的AudioQueueOutputCallback功能,播放仍在繼續。此外,每次對AQS的呼叫返回0,因此沒有任何失敗。iPhone上的音頻隊列服務僅播放第一個入隊緩衝區?

現在,只要我從WITHIN我的回調函數調用AudioQueueEnqueueBuffer,我就可以獲得隨後的緩衝區。這不會起作用,因爲我只能填充隊列中的緩衝區,並將其從我的AudioFileStream_PacketsProc回調中排除,因爲數據線從套接字到​​。

任何人都有這個問題?好像在AQS給我一個bug ......

感謝, 安德魯

回答

0

想通了的情況下,任何人有這個問題...

我沒有意識到的AQ總是向前移動及時。由於我使用的是UDP數據流中的音頻數據,因此我會慢慢落後於AQ,因爲丟失了數據包。

我一直無法弄清楚如何告訴AQ播放緩衝區「現在正確」。我的解決方法是隻在檢測到丟包時重置AQ。這並不理想,但現在起作用。

Andrew

+2

我也有類似的問題,請您提供一些更多的見解。 – Amitg2k12 2011-06-02 13:43:10