APP中播放视频是常用的功能,但他是怎么实现的呢?下面我们一起看一下。
首先导入依赖:(在build.gradle下)
implementation 'cn.jzvd:jiaozivideoplayer:7.6.0'
配置混淆,可依据需求配置:(在proguard-rules下)
# 视频混淆
-keep public class cn.jzvd.JZMediaSystem {*; }
-keep public class cn.jzvd.demo.CustomMedia.CustomMedia {*; }
-keep public class cn.jzvd.demo.CustomMedia.JZMediaIjk {*; }
-keep public class cn.jzvd.demo.CustomMedia.JZMediaSystemAssertFolder {*; }
-keep class tv.danmaku.ijk.media.player.** {*; }
-dontwarn tv.danmaku.ijk.media.player.*
-keep interface tv.danmaku.ijk.media.player.** { *; }
布局文件
android:id="@+id/jz_video"
android:layout_width="match_parent"
android:layout_height="200dp" />
Fragment中:
//做完id绑定工作之后
// 设置视频链接
jzVideo.setUp("https://v-cdn.zjol.com.cn/280443.mp4"
, " ");
// 设置图片资源
// jzVideo.posterImageView.setImage("http://p.qpic.cn/videoyun/0/2449_43b6f696980311e59ed467f22794e792_1/640");
Activtiy中:
/**
* 视频处理
*/
@Override
public void onBackPressed() {
if (Jzvd.backPress()) {
return;
}
super.onBackPressed();
}
@Override
protected void onPause() {
super.onPause();
Jzvd.releaseAllVideos();
}
注意:可能处死运行程序运行不起来,需要在build.gradle android节点下添加:
即Error: Invoke-customs are only supported starting with Android O (--min-api 26)的解决方法
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
注意:本博客中视频是搭配fragment使用,获取视频控件以及设置视频链接以及图片均在fragment中实现的,Activtiy中只做了onBackPressed()以及onPause()操作
主要引用了三方的视频播放器