InfLink-rs
为网易云音乐提供 SMTC 和 Discord RPC 支持。
使用方法
通过插件商店安装
- 安装 Betterncm 插件
- 在插件商店中找到并安装 InfLink-rs
- 根据提示重启网易云音乐
手动安装
- 安装 Betterncm 插件
- 在 Release 页面下载最新版本
- 将插件文件 (以
.plugin结尾) 复制到C:\betterncm\plugins文件夹下 (或者你指定的自定义数据目录) - 重启网易云音乐
已测试的网易云音乐版本
仅在这些版本上进行了测试,其它版本不保证可以工作!
V3 版本:
3.1.20 ~ 3.1.41
V2 版本:
[!CAUTION]
理论上只适配这一个最新的 V2 版本,其它版本大概率无法工作
2.10.13
支持上传到 SMTC 的信息
- 播放状态 (暂停或播放)
- 曲目信息
/ 连接多个艺术家)
* 专辑名
* 封面 (分辨率可自选)
* 歌曲 ID (包含在 “流派” 信息中,可用于精确匹配歌曲。格式为 NCM-{ID})
- 播放进度 (每秒更新一次,精确到 1 厘秒)
- 随机模式 (是或否)
- 循环模式 (单曲循环、列表循环、顺序播放)
支持的 SMTC 控制能力
- 上一首
- 下一首
- 播放
- 暂停
- 跳转
- 随机播放
- 循环播放
- 如果开启随机播放,就会固定开启列表循环。
- 如果已经开了随机播放,切换循环模式会退出随机播放并设置为顺序播放。
插件 API
InfLink-rs 会向全局暴露 window.InfLinkApi,供其他 BetterNCM 插件读取当前播放信息、控制播放器,以及订阅切歌和进度等事件。
- 类型定义文件位于
packages/frontend/src/types/api.d.ts - 完整使用说明见 docs/inflink-api.md
- 如果你的插件依赖这个 API,建议在自己的
manifest.json里把loadAfter和requirements都配置为包含InfLinkrs - 调用前请先判空,因为只有在 InfLink-rs 成功初始化后该接口才会存在
const api = window.InfLinkApi;
if (api) {
console.log(api.getCurrentSong());
api.addEventListener("songChange", (event) => {
console.log("当前歌曲:", event.detail.songName);
});
}
更新日志
构建
先决条件:
- Node.js (v24+)
- pnpm 12
- Rust 工具链
- 克隆仓库
git clone --recurse-submodules https://github.com/apoint123/inflink-rs.git
- 安装构建目标
i686-pc-windows-msvc 目标用于构建适用于网易云音乐 v2 的原生插件
rustup target add x86_64-pc-windows-msvc
rustup target add i686-pc-windows-msvc
- 安装依赖
pnpm install
- 构建
pnpm build
这个命令会自动完成整个扩展 (包括前端和后端) 的构建,你可以在 packages\frontend\dist 找到构建产物