GSYVideoPlayer
Video players (IJKplayer, ExoPlayer, MediaPlayer), HTTPS, 16k page size, danmaku (bullet chat) support, external subtitles, support for filters, watermarks, and GIF screenshots, pre-roll and mid-roll ads, multiple simultaneous playback, basic seeking/dragging, volume and brightness adjustment, play-while-cache support
Install / Use
npx skills add CarGuo/GSYVideoPlayerInstalls into whichever agent you are using.
README

Supports IJKPlayer, Media3(EXOPlayer2), MediaPlayer, AliPlayer, implementing a multi-functional video player. (Please read the following instructions carefully, most questions can be answered below).
* HarmonyOS version openharmony-tpc/GSYVideoPlayer
If cloning is too slow or images are not visible, you can try to synchronize from the following addresses
- GitCode https://gitcode.com/ZuoYueLiang/GSYVideoPlayer
- Gitee:https://gitee.com/CarGuo/GSYVideoPlayer
Type | Function
-------------|-------------------------------------------------------------------------------------------------------------------------------------------------
Cache | Play while caching, using AndroidVideoCache; Media3(ExoPlayer) uses SimpleCache.
Protocols | h263\4\5, Https, concat, rtsp, hls, rtmp, crypto, mpeg, etc. (ijk mode format support)
Filters | Simple filters (mosaic, black and white, color filter, Gaussian, blur, etc. more than 20 kinds), animation, (watermark, multi-screen playback, etc.).
Frame images | Video first frame, video frame screenshots, composed player screenshots including UI, and video to gif function.
Playback | List playback, continuous list playback, gravity rotation and manual rotation, video's own rotation attribute, fast and slow playback, network video loading speed.
Screen | Adjust display ratio: default, 16:9, 4:3, fill; rotate screen angle during playback (0,90,180,270); mirror rotation.
Kernel | IJKPlayer, Media3(EXOPlayer), MediaPlayer, AliPlayer switching, custom kernel
Layout | Full screen and non-full screen two sets of layout switching, pure playback support without any operation controls, barrage function, inherited custom any layout.
Playback | Singleton playback, multiple simultaneous playback, video list sliding automatic playback, seamless playback of list switching detail pages.
Window | Small window, small window playback in multiple windows (including desktop).
Ads | Opening ads, skip ad support, interstitial ad function.
Subtitles | Unified external subtitle overlay supports SRT/WebVTT across IJK, Media3(EXOPlayer), and MediaPlayer; Media3 embedded cues can bridge to the same UI.
Dash | Media3(exo2) mode supports dash; the demo supports HLS master / DASH MPD adaptive quality track switching.
Stream | Supports metadata playback
Adapt 16k | ex_so adapts to 16K Page Size
openssl | Currently ex_so's arm64/x86_64 uses openssl 1.1.1w
FFmpeg | Currently ex_so's arm64/x86_64 uses FFmpeg 4.3
FFmpeg | Currently ex_so's arm64/x86_64 supports G711a(pcm_alaw)
Cast | First-class DLNA/UPnP casting built on jUPnP 3.0.3; CastCapability / CastProvider / CastSession SPI, SetAVTransportURI → Play → Seek chain preserves the local position when casting mid-playback; ships with a single-device Loopback Receiver for on-device smoke tests. Details.
More | No black screen when pausing front and back switching; multi-URL quality switching; Exo HLS/DASH adaptive quality; seamless switching support; keep-last-frame demo; WebVTT progress bar preview.
Customization | Customizable rendering layer, custom management layer, custom playback layer (control layer), custom cache layer.
| Official Account | Juejin | Zhihu | CSDN | Jianshu |---------|-------------------------------------------------------------|-------------------------------------------|-----------------------------------------|----------------------------------------------| | GSYTech | Click me | Click me | Click me | Click me
--------------Demo APK Download Address---------------
I. Using Dependencies
There are currently three hosting methods:
- MavenCentral: Available after version 11.0.0, all base class packages are published and hosted here.
- Github Package: Available from version 9.1.0, but before version 11.0.0, the basic dependencies of GSYIjkJava are still hosted on jitpack.
- Jitpack IO: Will continue to be released, but there is a random loss of packages on the hosting platform.
--- Version Update Instructions --- .
--- Recent Playback Features --- .
1. MavenCentral Reference (Recommended)
Since jitpack keeps losing packages, it has been migrated to MavenCentral. The usage is as follows:
First Add
allprojects {
repositories {
///...
mavenCentral()
maven { url "https://maven.aliyun.com/repository/public" }
}
}
You can choose one of the following three and add it to the build.gradle under the module.
A. Direct Introduction
//Complete version introduction
implementation 'io.github.carguo:gsyvideoplayer:13.1.0'
//Whether AliPlayer mode is needed
implementation 'io.github.carguo:gsyvideoplayer-aliplay:13.1.0'
B. Add java and the so support you want:
implementation 'io.github.carguo:gsyvideoplayer-java:13.1.0'
//Whether ExoPlayer mode is needed
implementation 'io.github.carguo:gsyvideoplayer-exo2:13.1.0'
//Whether AliPlayer mode is needed
implementation 'io.github.carguo:gsyvideoplayer-aliplay:13.1.0'
//so of ijk mode according to your needs
implementation 'io.github.carguo:gsyvideoplayer-arm64:13.1.0'
implementation 'io.github.carguo:gsyvideoplayer-armv7a:13.1.0'
implementation 'io.github.carguo:gsyvideoplayer-armv5:13.1.0'
implementation 'io.github.carguo:gsyvideoplayer-x86:13.1.0'
implementation 'io.github.carguo:gsyvideoplayer-x64:13.1.0'
C. Support other format protocols (mpeg, rtsp, concat, crypto protocols, support 16k Page Size)
A and B normal versions support 263/264/265, etc. For mpeg encoding, there will be sound but no picture. The so introduced by C supports mpeg encoding and other supplementary protocols, but the so package is relatively larger.
implementation 'io.github.carguo:gsyvideoplayer-java:13.1.0'
//Whether ExoPlayer mode is needed
implementation 'io.github.carguo:gsyvideoplayer-exo2:13.1.0'
//Whether AliPlayer mode is needed
implementation 'io.github.carguo:gsyvideoplayer-aliplay:13.1.0'
//More ijk encoding support
implementation 'io.github.carguo:gsyvideoplayer-ex_so:13.1.0'
D. Jetpack Compose Support (Optional)
The gsyvideoplayer-compose module is published with v13.1.0. It can be consumed from Maven Central / GitHub Packages like the other modules, or by depending on the source module directly with implementation project(":gsyVideoPlayer-compose") when working inside this repository.
🛠 Toolchain note: the Compose module is verified on JDK 21 in CI (
.github/workflows/*.yml—actions/setup-javajava-version: 21) and JDK 17 locally (the module pinssourceCompatibility / targetCompatibility / jvmTarget = 17in gsyVideoPlayer-compose/build.gradle). Both are fine; just make sure your local JDK is ≥ 17 so Kotlin 2.0.21 + AGP 8.6.1 can build.
The new gsyvideoplayer-compose module exposes Compose entries on top of the existing kernels and UI without touching any legacy code:
- Wrapper mode: a single Composable
GSYVideoPlayerView { ... }embedsStandardGSYVideoPlayerinto a Compose screen, with automatic Lifecycle bridge andreleaseon dispose. An optionalsetUpKey: Any?parameter lets you triggersetUpagain only when the data identity changes (idempotent). - Native mode:
GSYComposeHostPlayer + GSYPlayerControllerexposes aGSYPlayerSnapshotstate stream plus anevents: SharedFlow<GSYPlayerEvent>of one-shot edge events (Prepared/AutoComplete/Error), so t
Related Skills
gortex
1.1kHigh-performance code-intelligence engine for AI agents and IDE, supports 257 languages, multi repositories, based on graph, with access via CLI, MCP Server, and API. AI coding agents teammate - expose only needed information, cutting token usage up to 50x. 100% local.
techrogue
TechRogue – Roguelike technical quiz for engineers. Usage: /techrogue | /techrogue build | /techrogue settings
cc-switch
125.5kA cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
cc-switch
125.6kA cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
