跳到正文
发现
GSYVideoPlayer:Android 多功能视频播放器
其他开发者工具

GSYVideoPlayer:Android 多功能视频播放器

Android 多功能视频播放器库,支持 IJK、ExoPlayer、MediaPlayer、AliPlayer 内核切换。

admin
发布于 2026-10-28
浏览
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-cast DLNA/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 整理,以原仓库为准。

更新记录

  1. v14.0.0当前版本

    IJK/FFmpeg 升至 FFmpeg n5.1.10 + OpenSSL 3.5.9,变速 0.25×–4×,新增 Bloom、LUT、CRT 滤镜与折叠屏 Demo。

评论