当前位置:网站首页 > Java基础 > 正文

java基础小白竖屏

 目录介绍

- 1.关于此视频封装库介绍

- 1.1 能够满足那些业务需求

- 1.2 对比同类型的库有哪些优势

- 2.关于使用方法说明

- 2.1 关于gradle引用说明

- 2.2 添加布局

- 2.3 最简单的视频播放器参数设定

- 2.4 注意的问题,视频播放优化

- 2.5 关于开源库中的类说明

- 2.6 暴露各种监听事件接口

- 3.关于播放类型说明

- 3.1 普通视频播放

- 3.2 list页面视频播放

- 3.3 小窗口视频播放

- 3.4 类似爱奇艺,优酷会员试看视频播放

- 3.5 设置竖屏全屏或者横屏全屏模式

- 3.6 关于封装库中日志打印

- 4.关于相关方法说明

- 4.1 关于VideoPlayer类[播放器]中方法说明

- 4.2 关于VideoPlayerController类[控制器]中方法说明

- 4.3 关于对象的销毁

- 5.关于封装的思路

- 5.1 参考的案例思路

- 5.2 封装的基本思路

- 5.3 关于窗口切换分析

- 5.4 关于VideoPlayerManager视频播放器管理器分析

- 5.5 关于VideoPlayerController视频控制器分析

- 5.6 关于InterVideoPlayer接口分析

- 6.关于如何自定义你想要的视频播放模式

- 6.1 自定义视频播放器

- 7.关于效果图的展示

- 7.1 效果图如下所示

- 8.关于遇到的问题说明

- 8.1 视频难点

- 8.2 遇到的bug

- 8.3 后期需要实现的功能

- 9.关于版本更新说明

- 9.0.0 v0.0.0 写于2017年7月1日

- 9.0.1 V1.0.0 更新于2017年9月4日

- 9.0.2 V1.0.1 更新于2017年11月18日

- 9.0.3 v1.1.0 更新于2018年1月15日

- 9.0.4 v2.0.0 更新于2018年1月18日

- 9.0.5 v2.4.5 更新于2018年4月21日

- 9.0.6 v2.4.6 更新于2018年8月2日

- 9.0.7 v2.4.8 更新于2018年8月12日

- 9.0.8 v2.4.9 更新于2018年8月16日

- 9.0.9 v2.5.0 更新与2018年8月20日

- 9.1.0 v2.6.0 更新于2018年9月25日

- 10.关于参考文档说明

- 10.1 参考的项目

- 10.2 参考的博客

- 11.关其他说明

- 11.1 目前市场流行的视频框架

- 11.2 如何选择合适的框架

- 11.3 关于我的个人博客和站点

0.备注

- 仿照爱奇艺,优酷播放器写的,十分感谢GitHub上大神前辈们的开源案例和思路。

- 支持插入广告,设置视频观看权限,观看完后登录或者购买会员。我看到在star较多的项目issues中,有些人正好需要这个案例,库集成后直接通过代码调用即可,灵活且拓展性强。

- 由于调到做视频的部门,因此此部分代码会持续更新,也欢迎同行提bug或者问题

- 如果你觉得还可以,给个star吧!我也在持续学习中!!!

- 项目地址:https://github.com/yangchong211/YCVideoPlayer

1.关于此视频封装库介绍

1.1 能够满足那些业务需求

A基础功能

- A.1.1 能够自定义视频加载loading类型,设置视频标题,设置视频底部图片,设置播放时长等基础功能

- A.1.2 可以切换播放器的视频播放状态,播放错误,播放未开始,播放开始,播放准备中,正在播放,暂停播放,正在缓冲等等状态

- A.1.3 可以自由设置播放器的播放模式,比如,正常播放,全屏播放,和小屏幕播放。其中全屏播放支持旋转屏幕。

- A.1.4 可以支持多种视频播放类型,比如,原生封装视频播放器,还有基于ijkPlayer封装的播放器。

- A.1.5 可以设置是否隐藏播放音量,播放进度,播放亮度等,可以通过拖动seekBar改变视频进度。还支持设置n秒后不操作则隐藏头部和顶部布局功能

- A.1.6 可以设置竖屏模式下全屏模式和横屏模式下的全屏模式,方便多种使用场景

- A.1.7 top和bottom面版消失和显示:点击视频画面会显示、隐藏操作面板;显示后不操作会5秒后自动消失【也可以设置】

B高级功能

- B.1.1 支持一遍播放一遍缓冲的功能,其中缓冲包括两部分,第一种是播放过程中缓冲,第二种是暂停过程中缓冲

- B.1.2 基于ijkPlayer的封装播放器,支持多种格式视频播放

- B.1.3 可以设置是否记录播放位置,设置播放速度,设置屏幕比例

- B.1.4 支持滑动改变音量【屏幕右边】,改变屏幕亮度【屏幕左边】,屏幕底测左右滑动调节进度

- B.1.5 支持list页面中视频播放,滚动后暂停播放,播放可以自由设置是否记录状态。并且还支持删除视频播放位置状态。

- B.1.6 切换横竖屏:切换全屏时,隐藏状态栏,显示自定义top(显示电量);竖屏时恢复原有状态

- B.1.7 支持切换视频清晰度模式

- B.1.8 添加锁屏功能,竖屏不提供锁屏按钮,横屏全屏时显示,并且锁屏时java基础小白竖屏,屏蔽手势处理

C拓展功能【这块根据实际情况选择是否需要使用,一般视频付费App会有这个工鞥】

- C1产品需求:类似优酷,爱奇艺视频播放器部分逻辑。比如如果用户没有登录也没有看视频权限,则提示试看视频[自定义布局];如果用户没有登录但是有看视频权限,则正常观看;如果用户登录,但是没有充值会员,部分需要权限视频则进入试看模式,试看结束后弹出充值会员界面;如果用户余额不足,比如余额只有99元,但是视频观看要199元,则又有其他提示。

- C2自身需求:比如封装好了视频播放库,那么点击视频上登录按钮则跳到登录页面;点击充值会员页面也跳到充值页面。这个通过定义接口,可以让使用者通过方法调用,灵活处理点击事件。

- C.1.1 可以设置试看模式,设置试看时长。试看结束后就提示登录或者充值……

- C.1.2 对于设置视频的宽高,建议设置成4:3或者16:9或者常用比例,如果不是常用比例,则可能会有黑边。其中黑边的背景可以设置

- C.1.3 可以设置播放有权限的视频时的各种文字描述,而没有把它写在封装库中,使用者自己设定

- C.1.4 锁定屏幕功能

D待添加功能

- D.1.1 可以支持屏幕截图功能,视频添加水印效果

- D.1.2 支持弹幕功能

- D.1.3 后期待定,视频拖拽

1.2 对比同类型的库有哪些优势

1.2.1目前仅仅查了下GitHub上项目

- 目前GitHub上比较流行的库

- 至于官方库就不说了,jiecao的库是基于ijkplayer视频框架,目前封装库有许多,下面几个只是star比较多,其中jiecao库比较类似。

ijkplayer官方库
https://github.com/Bilibili/ijkplayer
Vitamio官方库
https://github.com/yixia/VitamioBundle
以jiecao为例的封装库
https://github.com/JasonChow1989/JieCaoVideoPlayer-develop 2年前
https://github.com/open-android/JieCaoVideoPlayer 1年前
https://github.com/lipangit/JiaoZiVideoPlayer 4个月前
https://github.com/CarGuo/GSYVideoPlayer
其他库
https://github.com/danylovolokh/VideoPlayerManager

1.2.2 具有的优势

- A.代码布局更加简洁,而且无多余代码

- B.几乎没有多少淡黄色警告,关于注释,通过使用阿里编码插件检测后更加规范,我对代码有洁癖

- C.视频播放器[负责播放],视频控制器[负责视频播放各种点击或者属性设置操作],控制器抽象类[定义属性抽象类,供子类实现],其他可以看代码。结构分层上比较清晰

- D.几乎所有的方法或者重要的成员或者局部变量都有相关的注释,注释的内容非常详细

- E.关于视频属性设置或者按钮点击事件,都可以通过设置相关方法灵活实现。

- 首先这些库封装的思路和代码都不错,我也是借鉴他们的思路,在他们的思路上改进而封装的。

- 相比来说代码结构更加清晰,举几个例子

版权声明


相关文章:

  • java从基础到放弃2024-10-17 22:18:05
  • java基础面试题20182024-10-17 22:18:05
  • 0基础学java文本2024-10-17 22:18:05
  • java作业零基础2024-10-17 22:18:05
  • java大学基础胶层2024-10-17 22:18:05
  • 只会java基础简历怎么写2024-10-17 22:18:05
  • java基础考试及解析2024-10-17 22:18:05
  • java基础的教学目标2024-10-17 22:18:05
  • java100个基础小程序2024-10-17 22:18:05
  • java基础饭馆点餐2024-10-17 22:18:05