实现方法:
1.调用系统的setOnInfoListener()方法,该方法在API-17以后Google封装到了mediaPlayer中
videoView.setOnInfoListener(new MyOnInfoListener());
class MyOnInfoListener implements MediaPlayer.OnInfoListener{
@Override
public boolean onInfo(MediaPlayer mediaPlayer, int what, int extra) {
switch (what){
case MediaPlayer.MEDIA_INFO_BUFFERING_START://视频卡了,拖动卡了
ll_buffer.setVisibility(View.VISIBLE);//ll_buffer是视频卡住时的提示面板
break;
case MediaPlayer.MEDIA_INFO_BUFFERING_END://视频卡结束了,拖动卡结束了
ll_buffer.setVisibility(View.GONE);
break;
}
return true;
}
}
2.校验播放进度判断是否监听卡:
当播放进度 -上一次播放进度 < 0 则卡
两种方式的选择:
1.如果不能得到当前播放进度,可以用系统的监听卡,因为有些方式得不到进度,例如直播.m3u8格式的文件
2.校验播放进度判断是否监听卡一般情况下比系统的要好用灵敏很多,因为系统不卡后的回调不一定及时