目录介绍

1.视频具有的功能

1.1 基础功能

1.2 高级功能

1.3 拓展功能

2.使用方法介绍

2.1 关于gradle引用说明

2.2 添加布局

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

2.4 优化代码

2.5 注意问题

2.5.1 如果是全屏播放,则需要在清单文件中设置当前activity的属性值**
2.5.2 关于设置日志是否打印
2.5.3 如何一进入页面就开始播放视频

4.文档wiki说明[待更新,待完善]

5.运行的效果展示

6.版本更新说明

6.1 V1.0.0 更新于2017年10月4日

初期最简单功能

  • 6.0.1.1 支持最简单视频播放,暂停,缓冲,全屏播放等基础功能。
  • 6.0.1.2 支持滑动改变音量,改变声音大小的功能
  • 6.0.1.3 还有其他基本功能
    9.2 V1.0.1 更新于2017年11月18日
  • 最简单的封装,并且阅读相关视频案例,借鉴了相关思路和复用了部分代码
  • 测试环节
    9.3 v1.1.0 更新于2018年1月15日
  • 6.0.3.1 添加了设置视频播放权限的功能,用户可以自由设置权限,不过目前只是设置了用户是否登录,和登录用户是否有观看权限,因为公司需求是这样的,所以只有这两个。后期遇到其他需求再添加。逻辑已经在库中写好了,用户自己实现就可以呢。
  • 6.0.3.2 关于权限肯定有话术内容,那么用户可以通过调用接口直接设置展示在播放器试看结束后的内容。十分方便,这块参考了优酷和爱奇艺视频
  • 6.0.3.3 添加了用户多久不操作视频界面后,自动隐藏底部和头部布局视图。如果不设置,默认时间为5秒
  • 6.0.3.4 添加了多种视频加载时候的加载效果,目前有两种,一种是转圈效果,一种是帧动画效果。当然你可以自己添加动画加载效果
    9.4 v1.1.1 更新于2018年1月18日
  • 6.0.4.1 修改了视频横向播放时,点击手机物理返回键,画面展示状态栏问题
  • 6.0.4.2 修改了在list页面(recyclerView)的视频,当上拉加载更多时,加载十几次会导致崩溃问题
  • 6.0.4.3 精简了布局文件,方便修改定制和阅读
  • 6.0.4.4 修改了在网络不好或者飞行模式下,用户播放视频,应该是播放错误而不是一直转圈加载问题
  • 6.0.4.5 完善了代码的注释,现在几乎所有的方法都有相关注释,方便阅读和理解。去掉了无用的代码
  • 6.0.4.6 添加了暴露接口之用户登录和用户购买会员的接口,用户可以自己实现监听之后的操作或者跳转页面
  • 6.0.4.7 添加了视频左上方的返回键监听,用户可以自己实现返回逻辑
  • 6.0.4.8 添加了锁定屏幕方向的功能,还在测试中,有点问题
    9.5 v2.4.5 更新于2018年4月21日
  • 6.0.5.0 说明:全屏模式下,滑动屏幕左边改变亮度,滑动屏幕右边改变声音
  • 6.0.5.1 触摸滑动事件中,优化了只有全屏的时候才能拖动位置、亮度、声音
  • 6.0.5.2 优化了只有在播放,暂停,缓冲的时候才能改变亮度,声音,和拖动位置
  • 6.0.5.3 滑动改变亮度,声音和拖动位置时,隐藏控制器中间播放位置变化图,亮度变化视图和音量变化视图
    9.6 v2.4.6 更新于2018年8月2日
  • 6.0.6.1 添加了竖屏下的全屏播放模式
  • 6.0.6.2 解决了横屏下全屏播放模式的导航栏显示问题
    9.7 v2.4.7 更新于2018年8月12日
  • 6.0.7.1 添加了锁屏的功能,锁屏时,返回键不做任何处理,并且隐藏top和bottom面版控件
  • 6.0.7.2 优化了全屏播放视频时,左右滑动可以设置快进和快退的功能
  • 6.0.7.3 优化了播放视频中,没有网络,点击重试按钮提示用户检查网络是否异常吐司
  • 6.0.7.4 注册一个网络变化监听广播,在网络变更时进行对应处理,从有网切换到没有网络时,切换播放状态
  • 6.0.7.5 修改播放异常条件下,还有声音播放的问题
    6.0.9 v2.5.0 更新与2018年8月20日
  • 6.0.9.1 通过设置注解限制部分方法传入值类型,避免用户传入值导致意外情况
  • 6.0.9.2 初步写了小窗口视频拖拽功能,在下一个版本上该功能
  • 6.0.9.3 修改了正常窗口和全屏切换时,状态栏显示的问题
  • 6.0.9.4 优化了播放和暂停的监听事件,将listener暴露给开发者,可以让开发者处理某些逻辑,比如暂停时弹出广告
    6.1.0 v2.6.0 更新于2018年9月25日
  • 6.1.0.1 优化了视频全屏播放时锁屏的功能
  • 6.1.0.2 添加了视频在应用内小窗口拖动的功能
    6.1.1 v2.7.0 更新与2019年2月14日
  • 6.1.1.1 添加了注解限定符,其中包括资源类型注释,类型定义注释,值范围注释,@Nullable和@NonNull等等,增强代码的强壮性
  • 6.1.1.2 当视频播放完成或者意外销毁,都需要解绑注册网络监听广播
  • 6.1.1.3 当在播放视频页面,由前台切换到后台时,如果视频正在播放或者正在缓冲时,则暂停视频;当从后台切换到前台时,如果视频暂停时或者缓冲暂停,则重新开启视频播放
  • 6.1.1.4 添加了缓冲视频和播放准备中加载视频的时候,显示网络速度的逻辑
    6.1.2 v2.8.0 更新于2019年4月13日
  • 6.1.2.1 优化了VideoPlayerController中的结构,将电量状态监听广播和网络状态监听广播抽取出来
  • 6.1.2.2 OnBufferingUpdateListener监听中,播放完成后再次播放getBufferPercentage获取的值也不准确,94到99,达不到100。因此当大于95时,手动设置成100。

7.性能优化和库大小

8.主流视频框架选择

9.其他说明

9.1 其他推荐说明

9.2 关于LICENSE

Copyright 2017 yangchong211(github.com/yangchong211)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.