发现 
其他开发者工具
GSYVideoPlayer:Android 多功能视频播放器
Android 多功能视频播放器库,支持 IJK、ExoPlayer、MediaPlayer、AliPlayer 内核切换。
- 浏览
- 5
- 访问
- 0
- 下载
- 0
- 版本
- v14.0.0
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。
详细介绍
项目简介
GSYVideoPlayer 是一个开源的 Android 多功能视频播放器库,支持 IJKPlayer、Media3(EXOPlayer2)、MediaPlayer、AliPlayer 多种内核,并可自定义内核。采用 Apache-2.0 许可证,同时提供 HarmonyOS 版本 openharmony-tpc/GSYVideoPlayer。
主要功能
- 内核:IJKPlayer、Media3(EXOPlayer)、MediaPlayer、AliPlayer 之间切换,支持自定义内核。
- 协议:h263/4/5、Https、concat、rtsp、hls、rtmp、crypto、mpeg 等(具体支持范围见 IJK 模式格式文档)。
- 缓存:边播边缓存(AndroidVideoCache;Media3 使用 SimpleCache)。
- 滤镜与特效:基础滤镜、水印、多屏播放,以及多 pass 高斯/金字塔模糊、Bloom、LUT 调色、美颜、Glitch、CRT 与老电视信号干扰。
- 画面截取:视频首帧、视频帧截图、包含 UI 的合成截图、视频转 GIF。
- 播放能力:列表播放、连续列表播放、重力感应与手动旋转、视频自带旋转属性、快慢播、网络视频加载速度显示。
- 画面调整:默认、16:9、4:3、填充等显示比例;播放中 0/90/180/270 旋转;镜像旋转。
- 布局:全屏与非全屏两套布局切换,支持纯播放无控制层、弹幕、继承自定义任意布局。
- 多实例:单例播放、多路同时播放、列表滑动自动播放、列表与详情页无缝切换。
- 小窗:小窗播放,多窗口(含桌面)小窗播放。
- 广告:开屏广告、跳过广告、中插广告。
- 字幕:统一外挂字幕覆盖层,跨 IJK、Media3(EXOPlayer)、MediaPlayer 支持 SRT/WebVTT;Media3 内嵌字幕可桥接到同一 UI。
- Dash 与自适应:Media3(exo2) 模式支持 dash;Demo 支持 HLS master / DASH MPD 自适应清晰度切换。
- 直播流:支持 metadata 播放;RTSP 支持初始化阶段重定向与传输配置。
- 16K Page Size:ex_so 与 arm64/x64 适配 16K Page Size。
- native 依赖:ex_so 与 arm64/armv7a/x64 均使用 OpenSSL 3.5.9、FFmpeg n5.1.10,并支持 G711a(pcm_alaw)。
- 投屏:可选
gsyvideoplayer-castDLNA/UPnP 模块,基于 jUPnP 3.0.3;核心只保留 CastCapability / CastProvider / CastSession SPI。 - 可定制:渲染层、管理层、播放层(控制层)、缓存层均可自定义。
- 折叠屏:XML / Compose 的 FLAT、BOOK、TABLETOP 分屏/全屏 Demo,使用 FoldingFeature 铰链信息。
安装与使用
先添加仓库:
allprojects {
repositories {
///...
mavenCentral()
maven { url "https://maven.aliyun.com/repository/public" }
}
}
A. 直接引入完整版本:
implementation 'io.github.carguo:gsyvideoplayer:14.0.0'
//是否需要 AliPlayer 模式
implementation 'io.github.carguo:gsyvideoplayer-aliplay:14.0.0'
//是否需要 DLNA/UPnP 投屏(可选,minSdk 26)
implementation 'io.github.carguo:gsyvideoplayer-cast:14.0.0'
B. 按需引入 java 与所需 so:
implementation 'io.github.carguo:gsyvideoplayer-java:14.0.0'
//是否需要 ExoPlayer 模式
implementation 'io.github.carguo:gsyvideoplayer-exo2:14.0.0'
//可选直连 RTMP 模块,exo2 已传递暴露
implementation 'io.github.carguo:gsyvideoplayer-rtmp:14.0.0'
//按需选择 ABI,不要再同时加入 ex_so
implementation 'io.github.carguo:gsyvideoplayer-arm64:14.0.0'
implementation 'io.github.carguo:gsyvideoplayer-armv7a:14.0.0'
implementation 'io.github.carguo:gsyvideoplayer-x64:14.0.0'
C. 模块化 + 三个已迁移 ABI:
implementation 'io.github.carguo:gsyvideoplayer-java:14.0.0'
implementation 'io.github.carguo:gsyvideoplayer-exo2:14.0.0'
implementation 'io.github.carguo:gsyvideoplayer-aliplay:14.0.0'
//三个已迁移 ABI 的 IJK native 库
implementation 'io.github.carguo:gsyvideoplayer-ex_so:14.0.0'
D. Jetpack Compose 支持(可选):
// Maven Central:
implementation 'io.github.carguo:gsyvideoplayer-compose:14.0.0'
// 本地开发使用源码依赖:
implementation project(':gsyVideoPlayer-compose')
仓库内还提供 Demo APK,可在 Releases 页面下载。
注意事项
- 如果使用模块化 IJK,请选择
ex_so或所需的独立 ABI 模块,不要为同一 ABI 引入两套 native 库。 gsyvideoplayer-armv5/gsyvideoplayer-x86属于历史库(armeabi / x86),未升级到 FFmpeg 5,仅在明确需要旧架构时使用。- 核心最低 API 为 23,投屏模块
cast要求 API 26;compose、cast、aliplay均为按需引入的可选模块。 - Maven Central 使用
io.github.carguo,GitHub Packages 使用com.shuyu;JitPack 仍在发布但存在丢包情况,推荐使用 Maven Central。 - Compose 模块在 CI 使用 JDK 21 验证,本地要求 JDK ≥ 17,以配合 Kotlin 2.0.21 + AGP 8.9.1 构建。
本作品整理自 GitHub 开源项目 CarGuo/GSYVideoPlayer,原作者 @CarGuo,许可证 Apache-2.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v14.0.0当前版本
IJK/FFmpeg 升至 FFmpeg n5.1.10 + OpenSSL 3.5.9,变速 0.25×–4×,新增 Bloom、LUT、CRT 滤镜与折叠屏 Demo。
评论