2011-01-09 86 views
4

我已經實現了一個PCM解碼器,它可以寫入一個AudioTrack對象。來自AudioTrack流的通知消息

一切似乎都很棒,但是,當最後一個寫入的塊已停止播放時,我需要從AudioTrack對象獲得某種通知。

我注意到有回調方法,如setNotificationMarkerPosition,但是,我找不到任何廣泛的文檔如何使用它們。

在此先感謝!

+0

嗨chaoz,你是怎麼實現PCM解碼器?我正在尋找一個PCM解碼器來解碼音頻,任何幫助將對我非常有用。 – 2011-01-17 09:24:27

回答

2

要獲得AudioTrack回調,您可以設置標記回調或使用週期性回調。我已經看到關於標記問題的報告,因此您可能想嘗試兩種方法。

對於標記回調,請首先撥打setNotificationMarkerPosition,並輸入您想要撥打的任何幀號。

對於週期性回調,改爲撥打setPositionNotificationPeriod,它會調用每個x幀。您可以撥打setPlaybackPositionUpdateListener來註冊回撥。這將調用兩種方法:onMarkerReached(如果它到達標記)或onPeriodicNotification(每設置一定數量的幀)。您可以選擇使用一種或另一種,或兩者兼用。這兩個回調都是指你用來設置它的實例AudioTrack

默認情況下,它會在同一個線程中回調AudioTrack實例的創建。或者,您可以在註冊回調將其發送到另一個線程時傳遞處理程序。