- 引入本 API 可使您简易的获取或发送歌词。
- 本 API 可供模块获取歌词使用或音乐软件主动发送歌词使用。
- 添加依赖:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' } // 添加 JitPack 库
}
}
dependencies {
implementation 'com.github.HChenX:SuperLyricApi:2.3' // 引入依赖
}
- 同步项目并下载完成后即可使用本 API。
- 使用方法:
public class Test {
public void test() {
Context context = null; // 假设上下文
ISuperLyric.Stub iSuperLyric;
// 注册监听
SuperLyricTool.registerSuperLyric(context, iSuperLyric = new ISuperLyric.Stub() {
@Override
public void onSuperLyric(SuperLyricData data) throws RemoteException {
// 歌曲歌词变化或数据变化时会调用
data.getLyric(); // 歌词
data.getTranslation(); // 歌词的翻译
data.getDelay(); // 当前歌词的持续时间 (0 值代表无效)
data.getPackageName(); // 发布歌词的软件
data.getMediaMetadata(); // 歌曲数据 (可能为 null)
data.getEnhancedLRCData(); // 逐字歌词数据
...
}
@Override
public void onStop(SuperLyricData data) throws RemoteException {
// 歌曲暂停时会调用
// 一般会包括以下两个数据可供使用,当然具体要看发送方提供了什么
data.getPackageName(); // 暂停播放的软件包名
data.getPlaybackState(); // 播放状态
...
}
});
// 解除注册
SuperLyricTool.unregisterSuperLyric(context, iSuperLyric);
// 其他 API 请参考源码注释
}
}
- 几句简单代码即可实现!
- 使用方法:
public class Test {
public void test() {
SuperLyricTool.isEnabled; // 是否被激活
// 请注意,非常建议您设置包名,这是判断当前播放应用的唯一途径!!
SuperLyricPush.onSuperLyric(
new SuperLyricData()
.setLyric() // 设置歌词 (必选)
.setTranslation() // 当前歌词的翻译 (可选)
.setPackageName() // 设置软件包名 (必选)
.setDelay() // 设置当前歌词持续时间 (可选)
.setMediaMetadata() // 设置歌曲数据 (可选)
.setPlaybackState() // 设置播放状态 (可选)
.setExtra(new Bundle()) // 设置其他附加数据 (可选)
.setEnhancedLRCData(new SuperLyricData.EnhancedLRCData[]{
new SuperLyricData.EnhancedLRCData("Test Word", 100)
}) // 逐字歌词数据 (可选)
...
); // 发布歌词
SuperLyricPush.onStop(
new SuperLyricData()
.setPackageName() // 设置软件包名 (必选)
.setMediaMetadata() // 设置歌曲数据
.setPlaybackState() // 设置播放状态
.setExtra(new Bundle()) // 设置其他附加数据
...
); // 发布歌曲暂停
// 其他 API 请参考源码注释
}
}
- 然后在歌词获取器内勾选您的音乐应用即可。
// 不建议混淆本 API
-keep class com.hchen.superlyricapi.* {*;}
💖 感谢您的支持,Enjoy your day! 🚀