2010-08-08 35 views
0

我很苦惱與我實施的AudioQueue音頻播放器。我最初認爲它截斷了它播放的音頻的1/2,但是在加載較大的文件時,我會注意到每隔1秒2-1秒就會出現空檔。我在調試中運行它,並且我確認我正在用音頻正確加載隊列。 (隊列中沒有大的零區域。)它在模擬器上沒有問題地播放(沒有間隙),但是在設備上我得到了間隙,就好像它缺少了其他所有音頻塊一樣。在我的應用程序中,我解壓縮,然後從內存NSMutableData對象中提取音頻。我將這些數據提供給音頻隊列。我在播放波形音頻的相同應用中有相應的實現,並且此示例在長短音頻剪輯中沒有問題。我將wave的實現與減壓的另一個進行比較。兩者之間的唯一區別是我如何發現音頻元數據以及我在哪裏獲取音頻樣本排隊。在wave實現中,我使用AudioFileGetProperty和AudioFileReadPackets來獲取這些數據。在另一種情況下,我使用從我的解壓縮器回調期間加載的緩存ivars手動獲取數據。元數據適用於壓縮和波形實現。我已經運行了樂器中的代碼,並且在播放過程中,我的音頻數據包傳送/排隊邏輯中看不到超過1ms的任何內容。我完全失去了。如果你有任何想法如何解決這個問題,請說出來。AudioQueue播放中的空白

回答

0

我終於解決了這個問題。我發現如果我跳過音頻的第一個44字節(波頭的確切大小),那麼它在設備上正確播放。無論我跳過44還是不跳過,它都可以在SIM卡上正確支付。奇怪,我不知道爲什麼,但這是它的工作方式。

相關問題