我正在使用MediaPlayer在我的应用程序中播放视频。视频需要一段时间进行缓冲,此时视频视图为空白。
有没有一种方法可以在用户处于上一个屏幕时开始缓冲,以便当他来到视频播放屏幕时,视频已准备好播放?
谢谢 Chris
我正在使用MediaPlayer在我的应用程序中播放视频。视频需要一段时间进行缓冲,此时视频视图为空白。
有没有一种方法可以在用户处于上一个屏幕时开始缓冲,以便当他来到视频播放屏幕时,视频已准备好播放?
谢谢 Chris
像下面这样:
mp.setOnInfoListener(new OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
if (what == MediaPlayer.MEDIA_INFO_BUFFERING_START) {
loadingDialog.setVisibility(View.VISIBLE);
} else if (what == MediaPlayer.MEDIA_INFO_BUFFERING_END) {
loadingDialog.setVisibility(View.GONE);
}
return false;
}
});
我没有尝试过,但你可以在用户处于前一个屏幕时尝试调用MediaPlayer.prepareAsync(),然后在用户移动到正确的屏幕时调用.start()。不确定媒体播放器在此过程中是否可以存在...您可能需要在用户想要查看视频时动态更新的一个活动中完成所有操作。
mediaPlayer.setOnInfoListener(new OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
if (what == 703) {
// Not documented :(
// See https://dev59.com/nGHVa4cB1Zd3GeqPjRnh#9622717
isBuffering = true;
} else if (what == MediaPlayer.MEDIA_INFO_BUFFERING_END) {
isBuffering = false;
}
return false;
}
});