扩展歌单功能
查看MusicFree的源码,和其中的plugin.d.ts文件,提取几个关节接口
接口分析
getRecommendSheetTags
1 | /** 获取热门歌单tag */ |
调用逻辑:
这个接口在app打开热门歌单时启用
返回值说明:
- pinned字段返回固定的标签。这些标签名将直接显示在热门歌单这个界面上。
- data字段返回分组的普通标签
getRecommendSheetsByTag
1 | /** 歌单列表 */ |
调用逻辑:
- 这个接口在点击热门歌单中的标签时调用,返回包含标签的歌单
- 这个接口在点击热门歌单界面后,立即被调用一次。用于获取默认标签的歌单
返回值说明:
- title 歌单名
- artist 歌单作者
- 歌单id
getMusicSheetInfo
1 | /** 获取歌单信息,有分页 */ |
调用逻辑:
点击歌单封面时调用,用于获取歌单内的歌曲
返回值说明:
- musicList 歌单内的歌曲列表,将由getMediaSource接口来获取歌曲内容
插件实现
getRecommendSheetTags,插件直接发起请求,然后返回数据即可。逻辑可交由服务器实现
1
await axios.get(`${URL}getrecommendsheettags`)
getRecommendSheetsByTag,同上直接发起请求。逻辑交由服务器实现
1
2
3
4
5const body = {
tag,
page,
}
const result = await axios.post(`${URL}getrecommendsheetsbytag`, body)getMusicSheetInfo,同上直接发起请求。逻辑交由服务器实现
1
2
3
4
5const body = {
sheetItem,
page,
}
const result = await axios.post(`${URL}getmusicsheetinfo`, body)
服务器实现
1. getRecommendSheetTags
简单实现,直接返回三个固定即可
1 | return { |
2. getRecommendSheetTags
根据标签获取歌单
提前将本地做分类处理
- 全部歌曲加入我喜欢歌单。收到我喜欢标签时,返回我喜欢歌单
- 按将歌曲按歌手名分组,加入对应歌手歌单。收到歌手标签时,返回所有歌手的歌单
- 将同名歌曲按名字分组,加入对应歌名的歌单。收到翻唱标签时,返回所有翻唱歌曲的歌单
1 | -- 按歌手分组 |
然后根据请求的标签,返回对应的歌单
1 | function Sheet:getRecommendSheetsByTag(tag, page, PageCount) |
3. getMusicSheetInfo
根据歌单id,返回歌单内容
1 | function Sheet:getMusicSheetInfo(sheetItem, page, PageCount) |
开始使用
编译插件并拷贝进手机,然后通过APP安装
1
npm run build
然后点击热门歌单,选中并播放,大功告成