- 自己公司的项目是webview嵌套h5的,,反正麻烦的很0.0
- 恩 不过这个解决卡顿还不错,直接上代码了,大部分都可以搜到的handler+Runnable,我只是重复了一下,稍微修改了一下而已
/**
1.获取当前的播放时间,与上一次记录的时间进行对比,
2.如果事件一样了,就说明卡顿了!!!
3.时间不一样,那就说明可能没有卡顿 0.0 (缓存了可就说明了)
4.根据 卡顿 和 不卡顿 来做相关的处理
*/
int old_duration = 0 ;
private final Handler mHandlerLock = new Handler();
private Runnable mRunLock = new Runnable() {
public void run() {
int duration = mVideoView.getCurrentPosition();
if (old_duration == duration && mVideoView.isPlaying()) {
playNextItem();
ToastUtil.show(getApplicationContext() , "卡住了,播放下一个" );
} else {
ToastUtil.show(getApplicationContext() , "正常播放" );
}
old_duration = duration ;
mHandlerLock.postDelayed(mRunLock, 10 * 1000);
}
};
private void decideVideoLock() {
mHandlerLock.removeCallbacks(mRunLock);
mHandlerLock.postDelayed(mRunLock, 0);
}