2012-05-17 29 views
6

顯示緩衝%我有一個播放網絡流媒體播放服務,但我有如何在我的XML緩衝百分比顯示上的問題,此刻我只是顯示一個消息,因爲所有的方式,我嘗試了它給了我一個靜態的長數字。 這裏是我的球員服務的代碼:的Android,如何從onBufferingUpdate

@Override 
public void onBufferingUpdate(MediaPlayer mp, int percent) { 
    setBufferPosition(percent * getMusicDuration()/100); 
    myMain.EstadoRadio.setText(" Reproductor \n Buffering... "); 
} 

,你能告訴EstadoRadio是我的XML文本視圖是從myMain活動的工作,我想顯示流的緩衝%。 感謝您的幫助。

編輯:我已經看到了內心深處的情況下,從onBufferingUpdate(MediaPlayer的熔點,INT%)的「百分比」時,這樣的事情:

myMain.EstadoRadio.setText(" Reproductor \n" + percent + "%"); 

但對我來說%的始終是-2147483648,我不知道爲什麼,或者爲什麼不改變或更新,這裏是我的日誌貓一點:

05-17 13:34:37.005: V/MediaPlayer(25382): message received msg=3, ext1=-2147483648, ext2=0 
05-17 13:34:37.005: V/MediaPlayer(25382): buffering -2147483648 
05-17 13:34:37.005: V/MediaPlayer(25382): callback application 
05-17 13:34:37.005: V/MediaPlayer(25382): getDuration 
05-17 13:34:37.015: V/MediaPlayer(25382): back from callback 
05-17 13:34:38.016: V/MediaPlayer(25382): message received msg=3, ext1=-2147483648, ext2=0 
05-17 13:34:38.016: V/MediaPlayer(25382): buffering -2147483648 
05-17 13:34:38.016: V/MediaPlayer(25382): callback application 
05-17 13:34:38.016: V/MediaPlayer(25382): getDuration 
05-17 13:34:38.016: V/MediaPlayer(25382): back from callback 

回答

3

你所看到的數字是32位有符號整型的最小值。我會猜測,並說Android無法返回一個百分比,實際上是給你垃圾數據。

我替換遠程MP3 URL您的互聯網流,看是否緩衝得到一個真正的價值回

EDIT(由於這將確認您的代碼的其餘部分是沒有責任。):在Android文檔關於OnBufferingUpdateListener解釋漸進式http下載的用例,而不是無休止的互聯網流。

我不相信,顯示緩衝百分比的能力可以使用內的Android內置的聽衆。如果不打開Android源代碼來找到MediaPlayer類決定開始播放流的位置(如果它們甚至提供了回調),我懷疑這個問題是否會得到解決。

但是,如果有人能提供解決方案/解決方法,我會感興趣。

http://en.wikipedia.org/wiki/Integer_(computer_science

http://developer.android.com/reference/android/media/MediaPlayer.OnBufferingUpdateListener.html

+0

那麼,有沒有辦法從實時流獲得buferring%? – zvzej

+0

@zvzej我已經用我認爲正確的方式更新了我的答案。不過,我想鏈接這個錯誤報告[bug 832](http://code.google.com/p/android/issues/detail?id=832)。抱歉,我無法提供實際的解決方案。 – stevokk