1

我正在使用 MediaPlayer 播放互联网广播流。但是,每次我开始播放流时,缓冲似乎需要大约 10 秒。有什么办法可以显示:

  1. 开始玩时的进度?例如 GUI 中的进度条
  2. 播放后的缓冲状态?(例如,当缓冲区因某种原因变干时发出警告)

我尝试使用setOnBufferingUpdateListener(),但据我所知,它仅适用于持续时间已知的流。(所以不适用于网络广播,除非我错了——它没有被解雇)

4

1 回答 1

1

实现 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以了解其他操作;)

于 2014-07-31T14:19:56.493 回答