插件能做什么——搜索播放到歌单导入的功能矩阵
宿主需要插件提供哪些能力
MusicFree 宿主预设了一组核心接口,插件可以选择性实现。以下是完整的能力矩阵:
| 产品能力 | 宿主接口 | 说明 |
|---|---|---|
| 在线搜索音乐 | RemoteSearchMusic | 按关键词返回歌曲数组 |
| 在线搜索专辑 | RemoteSearchAlbum | 按关键词返回专辑列表 |
| 在线搜索作者 | RemoteSearchArtist | 按关键词返回歌手列表 |
| 获取播放链接 | GetMediaUrl | 输入歌曲 + 音质,返回可播放 URL |
| 获取歌词 | GetLyrics | 返回 LRC 格式歌词文本 |
| 获取封面 | GetCover | 返回歌曲/专辑封面图片 URL |
| 专辑详情 | GetAlbumInfo | 返回专辑内所有歌曲 |
| 作者详情 | GetArtistInfo | 返回歌手档案和热门歌曲 |
| 导入单曲 | ImportMusic | 从单曲链接解析歌曲信息 |
| 导入歌单 | ImportPlaylist | 从歌单链接批量导入歌曲 |
| 单曲元数据刮削 | ScraperSong | 补充本地歌曲的元信息 |
典型插件覆盖情况
不同音源的官方接口开放程度差异较大,因此插件的功能覆盖度也不相同:
| 插件 | 搜索 | 播放 | 歌词 | 封面 | 歌单导入 | 单曲导入 | 备注 |
|---|---|---|---|---|---|---|---|
| 网易云音乐 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 功能较全 |
| QQ 音乐 | ✅ | ✅ | ✅ | ✅ | ⚠️ 部分支持 | ⚠️ 部分支持 | 官方接口限制 |
| 酷我音乐 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - |
| 咪咕音乐 | ✅ | ✅ | ⚠️ 部分支持 | ✅ | ⚠️ 有限 | ❌ | - |
上表仅为大致参考,以实际插件实现为准。
为什么某些功能缺失
功能缺失的原因通常有三类:
- 音源本身不开放:某些平台的歌单导入需要登录态和加密签名,逆向成本高,插件作者没有投入精力。
- 接口变更:音源改版后旧接口失效,插件作者可能没有及时跟进更新。
- 有意过滤:官方示例仓库声明过滤 VIP 和试听歌曲,如果某首歌在官方平台需要付费,插件会跳过。
音质切换和"听起来没区别"
宿主预定义了 4 种音质档位,但具体能提供哪些音质完全由插件决定。如果插件只返回了 128kbps 的音频,宿主即使有切换界面也切不到更高。
如果觉得"切了音质听起来没区别",可能是:
- 你的耳机/播放设备本身无法区分
- 音源插件返回的不同音质 URL 实际指向了同一文件
- 音源接口限制了高音质需要付费,插件被过滤后只剩低音质可用
结论
遇到功能缺失或不工作时,第一反应应该是"这个插件有没有实现对应接口"而不是 MusicFree 本身的问题。MusicFree 作为宿主只负责调用接口和渲染结果,数据质量和功能覆盖度完全取决于插件。