我正在 Android 上开发在线流媒体播放器。我发现媒体播放器永远不会停止缓冲!它读取 100% 的缓冲区并继续做“某事”,因为流只能被读取一次,并且没有任何东西可以缓冲......我明白了
public void onBufferingUpdate(MediaPlayer player, int percent)
以百分比 = 100 无休止地调用。它会在一晚内耗尽电池电量。我做错了什么还是对此有一些合理的解释?似乎无法取消缓冲,停止它的唯一方法是重置媒体播放器本身。我需要一些方法来阻止这种无休止的“缓冲”!
这就是我初始化媒体播放器的方式
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setDataSource(streamUrl);
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnInfoListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnErrorListener(this);
mMediaPlayer.prepareAsync();
我看到的日志消息:
10-30 08:45:21.169: D/MediaPlayer(13217): Message: MEDIA_BUFFERING_UPDATE(3), ext1=93, ext2=0x0
10-30 08:45:22.169: D/MediaPlayer(13217): Message: MEDIA_BUFFERING_UPDATE(3), ext1=100, ext2=0x0
10-30 08:45:23.169: D/MediaPlayer(13217): Message: MEDIA_BUFFERING_UPDATE(3), ext1=100, ext2=0x0
10-30 08:45:24.172: D/MediaPlayer(13217): Message: MEDIA_BUFFERING_UPDATE(3), ext1=100, ext2=0x0
10-30 08:45:25.172: D/MediaPlayer(13217): Message: MEDIA_BUFFERING_UPDATE(3), ext1=100, ext2=0x0
...