最近项目当中有用到视频播放器这个功能,分享一个我的开发心得。一般情况下,我们不会去写一个视频播放器,因为需要很多知识和播放场景考虑。分享一个我使用到的视频播放器的库,JZVideo(俗称饺子播放器)。

JZVideo集成

implementation 'cn.jzvd:jiaozivideoplayer:7.5.0'

XML使用

<cn.jzvd.JzvdStdandroid:id="@+id/jz_video"android:layout_width="match_parent"android:layout_height="200dp" />

在代码中设置视频地址、缩略图、标题

MyJzvdStd jzvdStd = (MyJzvdStd) findViewById(R.id.jz_video);
jzvdStd.setUp("http://jzvd.nathen.cn/c6e3dc12a1154626b3476d9bf3bd7266/6b56c5f0dc31428083757a45764763b0-5287d2089db37e62345123a1be272f8b.mp4", "饺子闭眼睛");
jzvdStd.posterImageView.setImage("http://p.qpic.cn/videoyun/0/2449_43b6f696980311e59ed467f22794e792_1/640");

setUp方法参数说明:

  1. 参数一:视频的播放路径;
  2. 参数二:视频的标题。

posterImageView.setImage方法是设置视频未播放的时候的缩略图展示。

界面生命周期绑定

@Override
public void onBackPressed() {if (Jzvd.backPress()) {return;}super.onBackPressed();
}@Override
protected void onPause() {super.onPause();Jzvd.releaseAllVideos();
}

绑定生命周期可以更好的处理交互问题。

混淆配置

上线App的时候,出于代码安全以及apk大小优化的情况下,可以在proguard-rules.pro加入以下代码:

-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.** { *; }

这是在App当中对JZVideo的简单使用,如果下次项目项目当中有比较复杂的交互或者处理,我会另外写一篇博客分享的。

Android-推荐一个视频播放库JZVideo相关推荐

  1. 推荐一个界面库:RingSDK

    这是我自己写的界面库,编程一直用他,包含了界面库和图象库.这个库并不是有意为之,而是我多年编程过程中积累下来的.最初只是把一些经常要用到的功能封装成一些函数,建了一个静态库,方便自己编程,后来慢慢积累 ...

  2. 推荐一个python库:Vaex

    这阵子,我没太多关注各种热点,什么华为.罗永浩,我都没有去了解. 我在忙什么呢?最近我在研究各种工具产品的智能化趋势,数据的充沛.算法的成熟,以往我们pc互联网创造的工具都有被改造一遍的可能. 我最看 ...

  3. 今天给大家推荐一个可视化库:cutecharts,我把她叫做pyecharts的妹妹

    本文转自公众号"简说Python" 点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电 ...

  4. java读取csv合适文件_解析-您可以推荐一个Java库来读取(并可能写入)CSV文件吗?...

    Super CSV是读取/解析,验证和映射CSV文件到POJO的绝佳选择! 我们(Super CSV团队)刚刚发布了一个新版本(您可以从SourceForge或Maven下载它). 读取CSV文件 以 ...

  5. 推荐一个开源库(Calligraphy)将ttf字体库加入到项目中,轻松实现各种字体

    库连接(https://github.com/chrisjenx/Calligraphy) 官方截图 详细使用说明请进入该链接查看, 下面简单介绍其中的一种用法,设置到主题(Theme)中 第一步:将 ...

  6. python场景文字识别_针对复杂场景的 OCR 文本识别,推荐一个Python 库!

    大家好,我是 zeroing~ 1,前言 之前谈到图片文本 OCR 识别时,写过一篇文章介绍了一个 Python 包 pytesseract ,具体内容可参考 介绍一个Python 包 ,几行代码可实 ...

  7. 推荐一个好库 热键监听 hotkeys-js

    使用代码 import hotkeys from 'hotkeys-js' hotkeys('command+s', function (event, handler) {// 阻止窗体自带事件eve ...

  8. 推荐一个视频播放器potplayer

    不知道看视频听音频学习的时候会不会有需要重复听,或者打标签的时候,这个软件很好的做到了这一点,右键->播放->书签就可以解决,重复的话播放控制栏上就有,而且精简流畅,真的是好东西.

  9. 推荐一个日历转换开源工具库,支持C#、Java、PHP等主流的语言

    更多开源项目请查看:一个专注推荐.Net开源项目的榜单 日历对我们来说,最熟悉的就是阳历和农历,在中国每年都有固定的节日.节气.中国特有传统节日,有些节日是固定的,但是节气这些都需要我们经过一定规则换 ...

最新文章

  1. python 3389爆破机
  2. 利用matlab处理点云
  3. 大数据时代第一部分思维导图_大数据时代总结思维导图模板分享
  4. OpenLayers3基础教程——OL3之Popup
  5. mysql 创建事件_mysql怎么建立事件
  6. HDU5763 Another Meaning(KMP+dp)
  7. %3c %3e 转换html,防止基本的XSS攻击 滤掉HTML标签
  8. Linux Shell 流程控制语句实例
  9. html如何修改按钮样式,css怎么设置按钮样式?
  10. 黑客技术思维导图总结
  11. RT-Thread Studio中使用DHT11软件包
  12. 打开ps显示计算机内存不足怎么办,如何解决PS内存不足的问题
  13. 全桥逆变电路部分分析
  14. 2023云南大学计算机考研信息汇总
  15. PostgreSQL命令行常用命令psql
  16. Spring(11) - Introductions进行类扩展方法
  17. centos-ssh-channel is not opened.
  18. mysql添加用户并赋予权限命令
  19. error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was
  20. 2014华中首届手游创意大赛

热门文章

  1. WireGuard Easy 安装使用
  2. 正则匹配学习,示例:包含a和b,包含a不包含b,包含a不包含b和c
  3. 【无人驾驶系列】光学雷达(LiDAR)在无人驾驶技术中的应用
  4. mysql如何实现自增序列
  5. 中文版-安静-Still (Hillsong原唱)(好消息电视台 音乐河18)
  6. 报错信息:Could not load the Tomcat server configuration....详细解决办法,带截图
  7. 你的快递最远去到哪里呢
  8. 【逐函数讲解ORB_SLAM3源码】IMU的欧拉积分中值积分
  9. 在js中用图片显示当前时间
  10. 微信小程序 input框实现搜索历史记录