Skills

Gsy Kernel Switch

在 IJK / System / ExoPlayer2(Media3) / Aliyun 四个媒体内核之间自由切换,以及自定义 Manager 的方法。

Install

npx skills add CarGuo/GSYVideoPlayer --skill gsy-kernel-switch -g -a claude-code -y
Repository
CarGuo/GSYVideoPlayer21.5k
Category
Engineering
Updated
26d ago
License
Apache-2.0
Context cost
Lightabout 1,170 tokens
Runs scripts
No, instructions only

What it does

在 IJK / System / ExoPlayer2(Media3) / Aliyun 四个媒体内核之间自由切换,以及自定义 Manager 的方法。

gsy-kernel-switch

内核矩阵

KernelClass来源模块特点
IJK(默认)IjkPlayerManagergsyVideoPlayer-java + 升级后的独立 ABI / ex_soFFmpeg n5.1.10 的固定配置;软/硬解能力按格式与设备确认
SystemSystemPlayerManagergsyVideoPlayer-java无 so;靠 android.media.MediaPlayer;直播/复杂容器兼容差
Exo/Media3GSYExoPlayerManager(Demo 内)/GSYExo2MediaPlayergsyVideoPlayer-exo_player2DASH / HLS / SmoothStreaming / TrackSelection
AliyunAliPlayerManagergsyVideoPlayer-aliplay阿里云 vid/authInfo;HLS 加密

切换 API

全局切换:PlayerFactory.setPlayManager(Class<? extends IPlayerManager>)(内部 getPlayManager 用 sPlayerManager.newInstance() 反射构造,故被切入的类必须有 public 无参构造)。见 PlayerFactory#L15-L27 与本仓库 R8 保留规则 proguard-rules.pro。

// Exo
PlayerFactory.setPlayManager(Exo2PlayerManager.class);
CacheFactory.setCacheManager(ExoPlayerCacheManager.class);

// System
PlayerFactory.setPlayManager(SystemPlayerManager.class);

// Aliyun
PlayerFactory.setPlayManager(AliPlayerManager.class);

必须在 player.setUp(...) 之前调用;否则本次实例仍用旧内核。

IPlayerManager 抽象

统一接口见 IPlayerManager。核心方法(子类必须实现):

Read the whole SKILL.md on GitHub

More in Engineering