Home

Awesome

视频播放器介绍文档

目录介绍

00.视频播放器通用框架

01.该视频播放器介绍

播放器功能MediaPlayerExoPlayerIjkPlayerRTCTXPlayer
UI/Player/业务解耦支持支持支持
切换视频播放模式支持支持支持
视频无缝切换支持支持支持
调节播放进度支持支持支持
网络环境监听支持支持支持
滑动改变亮度/声音支持支持支持
设置视频播放比例支持支持支持
自由切换视频内核支持支持支持
记录播放位置支持支持支持
清晰度模式切换支持支持支持
重力感应自动进入支持支持支持
锁定屏幕功能支持支持支持
倍速播放不支持支持支持
视频小窗口播放支持支持支持
列表小窗口播放支持支持支持
边播边缓存支持支持支持
同时播放多个视频支持支持支持
仿快手预加载支持支持支持
基于内核无UI支持支持支持
添加弹幕支持支持支持
全屏显示电量支持支持支持
视频播放位置本地记录支持支持支持

02.视频播放器功能

类型功能说明
项目结构VideoCache缓存lib,VideoKernel视频内核lib,VideoPlayer视频UI等lib , VideoSqlLite视频位置二级缓存, VideoView视频悬浮lib , VideoM3u8下载m3u8以及合成库lib
内核MediaPlayer、ExoPlayer、IjkPlayer,后期接入Rtc和TXPlayer
协议/格式http/https、concat、rtsp、hls、rtmp、file、m3u8、mkv、webm、mp3、mp4等
画面调整显示比例:默认、16:9、4:3、填充;播放时旋转画面角度(0,90,180,270);镜像旋转
布局内核和UI分离,和市面GitHub上大多数播放器不一样,方便定制,通过addView添加
播放正常播放,小窗播放,列表播放,仿抖音播放
自定义可以自定义添加视频UI层,可以说UI和Player高度分离,支持自定义渲染层SurfaceView
统一视频埋点暴露用户播放视频开始,退出,异常,播放完成,以及退出视频时进度,点击广告,试看等多个统一埋点
视频播放位置本地记录本地可以记录播放视频的播放位置,采用二级缓存模式:内存缓存 + 磁盘缓存 + key缓存 + 配置缓存大小和类型和路径

03.视频播放器结构说明

3.1 视频播放器架构图

image

3.2 播放器视图分类

3.3 播放器痛点

3.4 播放器达到的目的

04.视频播放器如何使用

4.1 关于gradle引用说明

4.2 在xml中添加布局

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

4.4 注意问题

4.5 关于视频播放位置本地记录

05.播放器详细Api文档

06.播放器封装思路

6.1视频层级示例图

image

6.2 视频播放器流程图

6.3 视频播放器lib库

image

6.4 视频内核lib库介绍

image image

6.5视频播放器UI库介绍

image

07.播放器示例展示图

image image image image image image image image image image image image

08.添加自定义视图

09.视频播放器优化处理

10.播放器问题记录说明

11.性能优化和库大小

13.查看视频播放器日志

14.该库异常code说明

15.该库系列wiki文档

16.版本更新文档记录

17.其他说明

17.1 其他推荐说明

17.2 感谢参考案例和博客

17.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.