2012-11-14 16 views
2

我使用MediaPlayer從mp3流中進行流式傳輸。如何找出在mediaplayer中下載的字節數android

我設定的數據源,打電話preparyAsync(),在onPrepared()回調調用start()

現在我想知道在播放歌曲時由mediaplayer下載的字節數。

有沒有辦法跟蹤字節數?

它不會是一首歌,而是一個mp3流。

+0

可以(通過'setOnBufferingUpdateListener()')通知的緩衝進展,但我不知道有什麼直接的方法獲取底層網絡信息 – fiddler

+0

如果您知道mp3的大小,那麼您可以使用'setOnBufferingUpdateListener'來計算出它的大小。 – iTurki

+0

緩衝監聽者只給我百分比。不幸的是,它不是一首歌,它是一個mp3流。 – Anand

回答

1

我知道您想知道下載的壓縮數據的字節數,而不是MediaPlayer中未壓縮數據的字節數,與正在播放的音頻長度成正比。 (例如,在使用VBR的情況下,壓縮數據可能不成比例)。

要獲得下載的壓縮數據的字節數,您需要計算MediaPlayer下載的流的字節數,但我相信訪問下載的流的唯一方法是實現一個本地streamproxy,它提供給MediaPlayer,或者第二個解決方案是將流保存到本地文件並使用MediaPlayer打開此文件,但後面的解決方案有一些限制,因爲MediaPlayer會鎖定本地文件並且無法追加數據。

對於第一種解決方案請參閱如何實現代理養活這個解決方案的MediaPlayer:MediaPlayer stutters at start of mp3 playback