最近在研究 Android 播放器项目(起初是某个坑货准备大展宏图搞个niubi视频),GSYVideoPlayer 是一个使用简单、功能丰富的开源播放器。以下记录一下 GSYVideo 的基础使用,方便以后查阅和复用。

文档以 v8.x 为参考,若后续版本有变化请以官方为准:https://github.com/CarGuo/GSYVideoPlayer


一、集成方式

app/build.gradle 添加依赖:

1
2
3
4
5
6
7
implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer:v8.3.5-release-jitpack'
````

如果使用 Kotlin 或 Java 都兼容。确保项目使用了 JitPack 仓库:

```groovy
maven { url 'https://jitpack.io' }

二、基本用法

布局文件添加:

1
2
3
4
5
<com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
android:id="@+id/video_player"
android:layout_width="match_parent"
android:layout_height="200dp"
/>

Java 调用:

1
2
3
4
5
StandardGSYVideoPlayer videoPlayer = findViewById(R.id.video_player);
String url = "http://xxx.com/video.mp4"; // 支持网络、本地、M3U8

videoPlayer.setUp(url, true, "视频标题");
videoPlayer.startPlayLogic();

三、常用配置

  • 设置封面图
1
2
3
4
ImageView cover = new ImageView(this);
cover.setScaleType(ImageView.ScaleType.CENTER_CROP);
cover.setImageResource(R.drawable.cover);
videoPlayer.setThumbImageView(cover);
  • 全屏切换
1
videoPlayer.startWindowFullscreen(context, true, true);
  • 静音播放
1
videoPlayer.setNeedMute(true);

四、生命周期管理

确保在 Activity / Fragment 生命周期中调用相应方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Override
protected void onPause() {
super.onPause();
videoPlayer.onVideoPause();
}

@Override
protected void onResume() {
super.onResume();
videoPlayer.onVideoResume();
}

@Override
protected void onDestroy() {
super.onDestroy();
GSYVideoManager.releaseAllVideos();
}

五、进阶功能(了解)

  • 支持 ExoPlayer、IjkPlayer 内核切换
  • 支持悬浮窗、小窗口播放
  • 支持 M3U8 实时流播放
  • 支持全屏播放、自动横屏、缓存功能
  • 可自定义 UI 控件和播放逻辑

六、官方文档和地址


如有更多需求(比如:后台播放、自定义控制条、缓存逻辑),建议深入阅读官方 Demo 项目。

本文只作快速入门用,如有错误欢迎指出,共同进步~