-
-
Notifications
You must be signed in to change notification settings - Fork 4.3k
Home
Shuyu Guo edited this page Jan 22, 2024
·
95 revisions

基于IJKPlayer(兼容系统MediaPlayer与EXOPlayer2),实现了多功能的视频播放器。 (请仔细阅读下方各项说明,大多数问题可在下方找到解答)。
| 类型 | 功能 |
|---|---|
| 缓存 | 边播边缓存,使用了AndroidVideoCache;ExoPlayer使用SimpleCache。 |
| 协议 | h263\4\5、Https、concat、rtsp、hls、rtmp、crypto、mpeg等等。 |
| 滤镜 | 简单滤镜(马赛克、黑白、色彩过滤、高斯、模糊、模糊等等20多种)、动画、(水印、画面多重播放等)。 |
| 帧图 | 视频第一帧、视频帧截图功能,视频生成gif功能。 |
| 播放 | 列表播放、列表连续播放、重力旋转与手动旋转、视频本身rotation旋转属性、快播和慢播、网络视频加载速度。 |
| 画面 | 调整显示比例:默认、16:9、4:3、填充;播放时旋转画面角度(0,90,180,270);镜像旋转。 |
| 内核 | IJKPlayer、EXOPlayer、MediaPlayer切换、自定义内核 |
| 布局 | 全屏与非全屏两套布局切换、没有任何操作控件的纯播放支持、弹幕功能、继承自定义任何布局。 |
| 播放 | 单例播放、多个同时播放、视频列表滑动自动播放、列表切换详情页面无缝播放。 |
| 窗口 | 小窗口、多窗体下(包括桌面)的小窗口播放。 |
| 广告 | 片头广告、跳过广告支持、中间插入广告功能。 |
| 更多 | 暂停前后台切换不黑屏;调整不同清晰度的支持;无缝切换支持;锁定/解锁全屏点击功能;进度条小窗口预览(测试)。 |
| 自定义 | 可自定义渲染层、自定义管理层、自定义播放层(控制层)、自定义缓存层。 |
关于自定义和出现问题的请先看问题集锦、demo、issue。
多了解一些音视频的基础常识,对容器,音视频编码,ffmpeg先做一些了解,以及mediacodec等的不同。
尽量少出现为什么别的能播的问题哟。
播放器的可自定义还是挺高的,定制请参考demo,多看源码。现在的功能有些多,demo也在不断的更新。
一些新功能和项目结构也在不断的调整。
欢迎提出问题,谢谢。

1、播放器内置常用功能接口,具体可参阅下发链接和源码,如需要自定义可通过继承播放器后,返回自定义布局或重载接口实现。
2、需要注意的是,全屏与非全屏播放之间接的是通过切换显示实现的,所以如有自定义功能或参数,需要重载startWindowFullscreen和resolveNormalVideoShow接口,在其中做同步处理。避免自定义效果在切换不生效,具体可参看DEMO。
3、外部需要获取播放器时,如有全屏和非全屏切换,可使用接口detailPlayer.getCurPlay()获取。
-
更多版本API请查阅:版本更新说明
有了一些调整,后面将修改wiki说明。
| 类 | 说明 |
|---|---|
| GSYTextureRenderView | 画面渲染绘制相关层。【源码】 |
| GSYVideoView | 视频播放相关层。【源码】 |
| GSYVideoControlView | 控制与UI显示相关。【源码】 |
| GSYBaseVideoPlayer | 全屏和小屏幕相关处理层,最基础可基础对象类。【源码】 |
| StandardGSYVideoPlayer | 可以直接使用的标准播放器,标准使用例子,适合参考实现或基础【源码】 |
| VideoAllCallBack | 视频相关的回调接口【源码】 |
| ListGSYVideoPlayer | 继承StandardGSYVideoPlayer,添加连续播放一个视频列表的功能。【源码】 |
| PreViewGSYVideoPlayer | 继承StandardGSYVideoPlayer,小窗口进度预览,测试版本。【源码】 |
| LandLayoutVideo | 继承CustomGSYVideoPlayer ,DEMO里演示全屏非全屏不同布局效果。【源码】 |
| SampleVideo | 继承StandardGSYVideoPlayer,DEMO演示清晰度切换,镜像,旋转等效果。【源码】 |
| DanmakuVideoPlayer | 继承StandardGSYVideoPlayer,DEMO演示弹幕集成效果。【源码】 |
| NormalGSYVideoPlayer | 继承StandardGSYVideoPlayer,使用图片播放按键和loading的播放器。【源码】 |
| EmptyControlVideo | 继承StandardGSYVideoPlayer,空播放UI的播放器。【源码】 |
| SmartPickVideo | 无缝切换的播放器。【源码】 |
| SampleCoverVideo | 内置封面的播放器。【源码】 |
| FloatingVideo | 多窗体下的悬浮窗页面支持Video。【源码】 |
| GSYSampleADVideoPlayer | 简单片头广告。【源码】 |
| GSYADVideoPlayer | 广告支持【源码】 |
| 类 | 说明 |
|---|---|
| GSYVideoType | 默认配置开关(显示比例,是否硬解码,切换播放器等)。【源码】 |
| ListVideoUtil | 单例列表播放器封装,封装了StandardGSYVideoPlayer ,对应 DEMO ListVideo2Activity,目前不再维护。 |
| OrientationUtils | 旋转工具类。【接口文档】 |
| GSYVideoManager | 视频管理器,实际上的单例播放器,全局暂停/播放接口,清理缓存,配种option,切换播放器,设置静音等。【接口文档】 |
| Debuger | log输出类 |
| GSYVideoOptionBuilder | 配置工具类【源码】 |
| GSYBaseActivityDetail | detail模式的抽象Activity 【源码】 |
| 类 | 说明 |
|---|---|
| PlayActivity | 直接打开一个播放器作为全屏,不需要单独调用全屏功能。 |
| ListVideoActivity | 普通列表DEMO,滑出屏幕会被释放。 |
| ListVideo2Activity | ListVideoUtil的DEMO,滑出列表不会被释放。 |
| RecyclerViewActivity | 普通列表DEMO的RecyclerView。 |
| RecyclerView2Activity | ListVideoUtil的RecyclerView。 |
| DetailPlayer | 详情类型的DEMO,手机旋转\点击全屏等效果。 |
| DetailListPlayer | 详情类型的DEMO,播放一个列表,自动播放下一个,手机旋转\点击全屏等效果。 |
| WebDetailActivity | 嵌套WebView的详情类型DEMO,主要是滑动演示。 |
| WebDetailActivity | 嵌套WebView的详情类型DEMO,主要是滑动演示。 |
| DanmkuVideoActivity | 嵌套DanmakuVideoPlayer的DEMO,主要是弹幕功能。 |
| DetailMoreTypeActivity | 支持全屏与非全屏切换的清晰度,旋转,镜像等功能。 |
| InputUrlDetailActivity | 增加了自定义输入框输入url页面。 |
| PlayEmptyControlActivity | 没有任何ui的播放页面。 |
| DetailControlActivity | 增加一些特俗控制的播放页面。 |
| PlayEmptyControlActivity | 没有任何控制ui的播放器。 |
| PlayPickActivity | 无缝切换播放页面。 |
| DetailFilterActivity | 滤镜效果播放页面 |
| WindowActivity | 多窗体下(包括桌面)的小窗口播放(WindowActivity) |
| DetailADPlayer | 简单片头广告 |
| ListMultiVideoActivity | 同时播放 |
| DetailADPlayer2、ListADVideoActivity | 高级功能广告支持 |
| SwitchPlay | 列表切换详情页面无缝播放【源码】 |
| 自定义 | 高级自定义demo【源码】 |
持续完善中。。。。。