2012-05-17 27 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