这个项目能做什么
GSYVideoPlayer 是一款开源 Android 视频播放器框架,支持多种播放内核,包括 IJKPlayer、Media3(ExoPlayer2)、MediaPlayer 和 AliPlayer,并可在运行时切换。它提供了丰富的视频播放能力,包括列表播放、连续播放、重力/手动旋转、变速播放,以及列表页与详情页之间的无缝切换。
主要特性包括:
- **缓存**:支持 AndroidVideoCache 或 ExoPlayer 的 SimpleCache 实现边播边缓存
- **协议支持**:H.263/264/265、HTTPS、RTSP、HLS、RTMP、DASH、MPEG、concat、crypto 等
- **滤镜**:超过 20 种视频滤镜(马赛克、黑白、高斯模糊等)、动画、水印和多屏播放
- **帧捕获**:视频首帧提取、帧截图、合成 UI 截图以及视频转 GIF
- **屏幕控制**:可调节显示比例(默认、16:9、4:3、填充、自定义)、旋转角度(0/90/180/270)和镜像旋转
- **布局**:全屏与非全屏布局切换、无控件的纯播放模式、弹幕支持,以及可继承的自定义布局
- **窗口模式**:小窗口播放和多窗口支持,包括桌面窗口
- **广告**:前置广告、跳过广告和插屏广告功能
- **字幕**:统一的外部字幕叠加,支持 SRT/WebVTT,适用于所有内核,并支持 Media3 嵌入式 cue 桥接
- **投屏**:可选的 DLNA/UPnP 模块,基于 jUPnP 构建,采用协议无关的 SPI 设计
- **自定义**:可插拔的渲染、管理、播放控制和缓存层
该项目还提供了 Jetpack Compose 模块,包含包装模式和原生模式,提供适配 Compose 的 API,包括 GSYVideoPlayerView Composable 和 GSYPlayerSnapshot 状态流及事件流。Compose 示例包含 24 个可运行的 Activity,覆盖多种使用场景。
依赖可通过 Maven Central(推荐)、GitHub Packages 和 JitPack 获取。项目支持 16K 页大小,并使用 FFmpeg 4.3 与 OpenSSL 1.1.1w 以扩展格式支持。HarmonyOS 版本也单独提供。
评论
0 评分人数达到10人后显示
登录后参与讨论。