跳至主要內容

Scheme URL支持

落雪無痕大约 3 分钟

从v1.17.0起支持 Scheme URL,可以使用此功能从浏览器等场景下调用LX Music,我们开发了一个油猴脚本open in new window配套使用

脚本安装地址:https://greasyfork.org/zh-CN/scripts/438148open in new window

以下是目前可用的Scheme URL调用方式:

  • URL统一以lxmusic://开头
  • 若无特别说明,源的可用值为:kw/kg/tx/wy/mg
  • 若无特别说明,音质的可用值为:128k/320k/flac/flac24bit

目前支持两种传参方式:

  • 通过data传参,以经过URL编码的JSON数据传参,例:lxmusic://music/play?data=xxxx,其中xxxx为经过URL编码后的JSON数据,支持复杂的参数调用
  • 通过URL传参,适用于简单传参的调用,不需要转成JSON格式,例:
    lxmusic://music/search/xxxx,但仍然需要对数据进行URL编码,只适应于简单参数调用(v1.18.0新增)

data方式传参

以经过URL编码的JSON数据传参,例:lxmusic://music/play?data=xxxx,其中xxxx为经过URL编码后的JSON数据,JSON数据内容取决于下表的参数部分

描述URL参数
打开歌单songlist/opensource<String>(源,必须)
id<String/Number>(歌单ID,可选)
url<String>(歌单URL,可选)其中ID与URL必需传一个
播放歌单songlist/playsource<String>(源,必须)
id<String/Number>(歌单ID,可选)
url<String>(歌单URL,可选)其中idurl必需传一个
index<Number>(播放第几首歌,可选,从0开始)
搜索歌曲music/searchkeywords<String/Number>(要搜索的内容,必须)
source<String>(源,可选)
播放歌曲music/playname<String>(歌曲名,必传)
singer<String>(艺术家名,必传)
source<String>(源,必传)
songmid<String/Number>(歌曲ID,必传)
img<String>(歌曲图片链接,选传)
albumId<String/Number>(歌曲专辑ID,选传)
interval<String>(格式化后的歌曲时长,选传,例:03:55
albumName<String>(歌曲专辑名称,选传)
types<Object>(歌曲可用音质数组,必传,
数组格式:[{"type": "<音质>", size: "<格式化后的文件大小,选传>", hash: "<kg源必传>"}]
例:[{"type": "128k", size: "3.56M"}, {"type": "320k", size: null}]

以下为平台特定参数:
hash<String>(歌曲hash,kg源必传)
strMediaMid<String>(歌曲strMediaMid,tx源必传)
albumMid<String>(歌曲albumMid,tx源专用,选传)
copyrightId<String>(歌曲copyrightId,mg源必传)
lrcUrl<String>trcUrl<String>mrcUrl<String>(歌曲lrcUrl、trcUrl与mrcUrl,mg源专用,选传)

以data传参的例子

以经过URL编码的JSON数据传参,例:lxmusic://music/play?data=xxxx,其中xxxx为经过URL编码后的JSON数据

  • 打开歌单:lxmusic://songlist/open?data=%7B%22source%22:%22kw%22,%22id%22:%223373919903%22%7D
  • 搜索歌曲:lxmusic://music/search?data=%7B%22keywords%22:%22%E7%AA%81%E7%84%B6%E7%9A%84%E8%87%AA%E6%88%91%22%7D

URL方式传参

由于URL传参只适用于简单传参场景,所以目前只支持以下功能的调用:

描述URL参数
搜索歌曲music/search/{source}/{keywords}source(源,可选)
keywords(要搜索的内容,必须)
例:music/search/kw/xxxmusic/search/xxx
打开歌单songlist/open/{source}/{id/url}source(源,必须)
id/url(歌单ID或歌单URL,必须)
例:songlist/open/kw/123456
播放歌曲player/play
暂停播放player/pause
切换下一曲player/skipNext
切换上一曲player/skipPrev
切换播放或暂停player/togglePlay
收藏当前播放的歌曲player/collect
取消收藏当前播放的歌曲player/uncollect
不喜欢当前播放的歌曲player/dislike

以URL传参的例子

lxmusic://拼接上表中填充参数后的URL即可,填充参数时最好将参数单独转一下URL编码,否则若参数中存在特殊字符(如/)将导致异常的调用

  • 打开歌单:lxmusic://songlist/open/kw/3373919903
  • 搜索歌曲:lxmusic://music/search/%E7%AA%81%E7%84%B6%E7%9A%84%E8%87%AA%E6%88%91
  • 切换下一曲:lxmusic://player/skipNext

相关issue看:https://github.com/lyswhut/lx-music-desktop/issues/1056open in new window