Android 使用 JiaoZiVideoPlayer(饺子播放器)播放视频
饺子播放器是一个开源、开箱即用的 Android 视频播放器组件。可以广泛应用于各类 Android 视频播放场景
它的 Github 的开源地址
导入依赖
implementation 'cn.jzvd:jiaozivideoplayer:7.7.0'
添加布局
<cn.jzvd.JzvdStd
android:id="@+id/player_view"
android:layout_width="match_parent"
android:layout_height="200dp"
/>
Activity 实现
JzvdStd jzvdStd = findViewById(R.id.player_view)
// 设置视频地址和视频标题
jzvdStd.setUp("你的视频链接地址" , "视频标题");
// 设置视频封面
jzvdStd.posterImageView.setImageResource(R.mipmap.video_cover);
// 自动播放
jzvdStd.startVideo();
设置生命周期
/**
* 当用户按下物理/虚拟返回键时,优先检查播放器状态
* 全屏模式:如果当前是全屏播放,先退出全屏(而不是直接退出 Activity)
* 弹窗控制:如果有播放控制弹窗(如亮度/音量调节),先关闭弹窗
* 播放列表:如果有播放列表界面,先关闭列表
* 只有当播放器不需要处理返回事件时,才执行 super.onBackPressed() 退出 Activity
*/
@Override
public void onBackPressed() {
if (Jzvd.backPress()) {
return;
}
super.onBackPressed();
}
/**
* 当 Activity 进入后台(如切换应用、锁屏、打开新 Activity)时触发
* Jzvd 会立即停止播放,并释放所有资源,防止内存泄漏
*/
@Override
protected void onPause() {
super.onPause();
Jzvd.releaseAllVideos();
}
修改 AndroidManifest.xml
在你播放视频的下方添加 android:configChanges="orientation|screenSize|keyboardHidden"
和 android:screenOrientation="portrait"
两个属性
还有别忘了声明网络访问权限
例如
<uses-permission android:name="android.permission.INTERNET" />
<activity
android:name=".MediaPlayer"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait"
android:exported="false" />
最后,我需要提醒,如果你需要播放网络视频,同时,视频链接又是 http
协议的话,需要你在 AndroidManifest.xml
中添加一条属性 android:usesCleartextTraffic="true"
,这个是表明使用不安全的明文传输。不然,系统默认是不会加载 http 协议的内容的,即便资源可以正常访问