我正在使用 MediaPlayer 播放互联网广播流。但是,每次我开始播放流时,缓冲似乎需要大约 10 秒。有什么办法可以显示:
- 开始玩时的进度?例如 GUI 中的进度条
- 播放后的缓冲状态?(例如,当缓冲区因某种原因变干时发出警告)
我尝试使用setOnBufferingUpdateListener()
,但据我所知,它仅适用于持续时间已知的流。(所以不适用于网络广播,除非我错了——它没有被解雇)
我正在使用 MediaPlayer 播放互联网广播流。但是,每次我开始播放流时,缓冲似乎需要大约 10 秒。有什么办法可以显示:
我尝试使用setOnBufferingUpdateListener()
,但据我所知,它仅适用于持续时间已知的流。(所以不适用于网络广播,除非我错了——它没有被解雇)
实现 MediaPlayer.OnInfoListener,覆盖 onInfo 方法,您可以控制 MediaPlayer 的状态,如下所示:
@Override
public boolean onInfo(MediaPlayer arg0, int what, int extra) {
Log.i(LOG_TAG, "MediaPlayer INFO code = " + what + " extra=" + extra);
if (what == MediaPlayer.MEDIA_INFO_BUFFERING_START) {
Log.d(LOG_TAG, "Start buffering...");
} else if (what == MediaPlayer.MEDIA_INFO_BUFFERING_END) {
Log.d(LOG_TAG, "End buffering...");
Log.d(LOG_TAG, "Start playing...");
}
return false;
}
查看http://developer.android.com/reference/android/media/MediaPlayer.html以了解其他操作;)