Android工具之判断uri字符串是否网络资源同时设置进度条第二进度,同时监听播放卡顿
2017-11-20 20:41
501 查看
/** * 判断传入数据是否网络资源 * @param uri * @return 是网络资源返回true(其中rtsp是网络直播),不是返回false */ public boolean isNetUri(String uri){ boolean result = true; if(uri!=null){ if(uri.toLowerCase().startsWith("http")||uri.toLowerCase().startsWith("rtsp")||uri.toLowerCase().startsWith("mms")){ result = true; } } return result;}
/**在handler里面每秒更新第二进度条背景*/
if(isNetUri){//网络资源
int buffer = videoview.getBufferPercentage();
int secondProgress=buffer*seekbarVideo.getMax()/100;
seekbarVideo.setSecondaryProgress(secondProgress);
}else{//本地视频
seekbarVideo.setSecondaryProgress(0);
}
if(isSystemMethod){//使用系统方法监听卡顿
//设置视频播放卡顿的监听,一般是网速较慢时
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
videoview.setOnInfoListener(new MyOnInfoListener());
}
}
class MyOnInfoListener implements MediaPlayer.OnInfoListener { @Override public boolean onInfo(MediaPlayer mp, int what, int extra) { switch(what){ case MediaPlayer.MEDIA_INFO_BUFFERING_START: ll_buffer.setVisibility(View.VISIBLE); break; case MediaPlayer.MEDIA_INFO_BUFFERING_END: ll_buffer.setVisibility(View.GONE); break; } return false; } }
/**使用自定义方法监听卡顿
自定义监听卡顿,如果能得到进度的,建议用自定义卡顿,会更准确;如果是直播,不能得到进度,只能用系统方法。
*/
if(!isSystemMethod && videoview.isPlaying()){
int dis = current-prePosition;
if(dis<500){//卡顿
ll_buffer.setVisibility(View.VISIBLE);
}else{//不卡
ll_buffer.setVisibility(View.GONE);
}
prePosition=current;
}else{//播放暂停状态
ll_buffer.setVisibility(View.GONE);
}
相关文章推荐
- 【Android】ListView监听上下滑动(设置滚动监听判断ListView的滚动方向同时获取屏幕高度、ListView实际高度,判断是否需要展示返回顶部按钮(具体逻辑请看代码--附有详细注释)。
- Android 超简单音乐播放器(十三)监听网络状态的变化,设置移动网络是否可以播放。
- Android开发之判断网络是否连接并提示设置
- (三十二)工具方法:如何判断是否有网络/如何调用系统设置界面
- Android中判断网络是否连接并提示设置
- Android网络状态的监听+判断是否前台进程+ListView的滚动底部
- Android开发-常用工具方法(dp转成px、网络是否可用、是否3G网络、Gps是否打开、判断手机号码等)
- Android中判断网络是否连接并提示设置
- Android :判断网络是否连接,并设置连接网络
- android 判断字符串是否同时包含小写字母与数字
- Android判断网络是否打开,并打开设置网络界面
- Android 判断字符串是否是URI
- Android判断网络是否打开,并打开设置网络界面
- Android判断网络是否连接,跳转到设置页面以及判断连接的是什么网络
- Android判断是否有网络连接及相关设置
- android4.0 中设置网络出错,Android判断网络是否打开,并打开设置网络界面
- android 判断网络是否可用,并调用系统设置项
- Android判断网络是否打开,并打开设置网络界面
- util工具(是否是网络资源、视频播放时间显示转换、显示网速)
- Android判断网络是否打开,并打开设置网络界面