我必须在这里遗漏一些明显的东西,但我似乎找不到任何东西可以让我确定 MediaPlayer 何时缓冲音频。我正在流式传输互联网音频,我想显示一个缓冲指示器,但我尝试过的任何方法都无法让我知道 MediaPlayer 何时中断音频以进行缓冲,因此我无法正确显示缓冲指示器。有什么线索吗?
最佳答案
如下(API 级别 ≥ 9):
mp.setOnInfoListener(new OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
switch (what) {
case MediaPlayer.MEDIA_INFO_BUFFERING_START:
loadingDialog.setVisibility(View.VISIBLE);
break;
case MediaPlayer.MEDIA_INFO_BUFFERING_END:
loadingDialog.setVisibility(View.GONE);
break;
}
return false;
}
});
注意:Android 中有一个已知错误。播放 HLS 流时,它永远不会调用 OnInfoListener 或 OnBuffering。检查此链接OnInfoListener bug
关于Android - 如何判断 MediaPlayer 何时缓冲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4465494/