2011-09-11 38 views
1

我們遇到了在AudioTrack類(http://code.google.com/p/android/issues/detail?id=17995)重新使用AudioTrack實例

是否有內存泄漏反正重複使用具有不同波形數據的AudioTrack實例? AudioTracks需要處於靜態模式以實現低延遲。

我們基本上想要分配(例如)16個AudioTrack實例,並在播放某些sound-fx時重新使用它們。問題似乎是寫入到已使用的AudioTrack導致崩潰,即使AudioTrack已停止。

有人請關心幫忙嗎?我試圖做甚至可能嗎?

謝謝,

Steve。

回答

1

如果您嘗試使用有限數量的音軌,您是否嘗試過使用靜態模式?

來自@Steve Haggerty的評論如下:據報道在某些版本的Android中有內存泄漏,並且STREAM模式是所有開發工作的首選。

+0

我們正在使用靜態模式。 我可以在靜態模式下設置AudioTracks,並用不同的音頻數據重新使用SAME AudioTracks。因爲目前,如果我嘗試寫入已使用不同數據播放的AudioTrack,則會發生崩潰。 Steve。 –

+0

是的,你不能改變靜態軌道中的數據:你可以重新加載它來重放,但就是這樣。如果您的音軌數量有限,您是否需要使用不同的數據,您是不是可以爲每個音頻文件生成一個音軌並重新使用這些音軌? – Femi

+3

收到Google發回的電子郵件。 STATIC內容存在內存泄漏。您應該爲所有音頻使用STREAM模式。即使在流模式下,延遲也可以忽略不計。 –