- player目前兼容到Android7.0
- player是基于android原生VideoView控件封装的一个通用性播放界面
- 只支持android原生videoview所支持的视频格式
- 若你需要支持更多的视频格式,可下载源码自行增加第三方的os库进行修改
- 开发者如果只需要简单的播放界面的话那么此library库是完全够用的,只需传入一个网络地址或者视频列表集合就可以播放了
- 这里给大家推荐一个国内比较知名的播放性能强大的库 Vitamio
- utils包中的GetMove.java类
- 此类是获取本地视频的帮助类,为了避免延时操作尽量在子线程中执行
- utils包中的Utils.java类
- public static String getNetSpeed(Context context) 获取网速
- public static void hideBottomUIMenu(Activity activity) 隐藏底部虚拟按键
- public static String durationFromat(long time) 将毫秒转化为 00:00 格式
- public static String getSystemTime() 获取系统时间
- public static int getScreenHeight(Context context) 获取屏幕高度
- public static int getScreenWidth(Context context) 获取屏幕宽度
- public static boolean isWifi(Context mContext) 判断是否连接到WIFI
- public static String sdSizeFromat(Context context, long size) 容量转换 b kb mb gb
- wedigt包中的CustomToast类是自定义的toast用法请参考源码
-
依赖库
compile 'com.videoplay:VideoView-Player:1.0.0'
-
播放本地视频的时候需要申请的权限
- Manifest.permission.WRITE_EXTERNAL_STORAGE
-
请求权限示例
//检查是否有该项权限
private void checkPremission() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
requestNeedPermission();
}
}
}
//请求权限
private void requestNeedPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 100);
}
}
- 简单的使用方法
//传入单个 url地址播放网络视频
public void click1(View view) {
Intent intent = new Intent(this, VideoActivity.class);
String bpath = "http://vfx.mtime.cn/Video/2017/05/09/mp4/170509071709934167.mp4";
intent.setDataAndType(Uri.parse(bpath), "video/*");
startActivity(intent);
}
//获取本地视频
GetMove.getLocalMove(context, new GetMove.OnFinishLinistener() {
@Override
public void onFinish(List<LocalVideoInfo> musicInfoList) {
if (musicInfoList != null && musicInfoList.size() > 0) {
videoInfoList = musicInfoList;
adapter = new ListAdapter();
handler.sendEmptyMessage(SUCCESS);
} else {
handler.sendEmptyMessage(ERROR);
}
}
});