CrazyCat404 发表于 2020-8-4 00:27:58

歌词插件-网易云API获取歌词

本帖最后由 CrazyCat404 于 2021-5-18 20:40 编辑

2021.5.18
暂时有bug!有需要的小伙伴可以等下次更新,但是我不能保证时间{:10_443:}

20.9.17更新
1.2.1版本插件lyric-online.dll,解决了因缺少某些dll无法运行的问题,慎用刷新。


======分割线============分割线============分割线============分割线============分割线============分割线============分割线============分割线============分割线============分割线============分割线======




20.8.16更新
与1.1功能上没有变化
加入QQ音乐曲库,如果按钮不能控制QQ音乐,打开QQ音乐设置,勾选“响应多媒体键盘”;
如果同时使用两个或多个音乐播放器,多媒体键盘控制会冲突,建议使用热键控制,皮肤文件夹里提供了网易云热键vps命令,将按钮与命令关联就可以了。

如果是QQ音乐,修改Variables节点下的PlayerName。


20.8.13更新
1.1版本皮肤及插件


修复错误:
①检索歌曲信息时关闭或刷新皮肤导致的程序卡死
②检索歌曲时,以下原因导致无法匹配
   歌曲名过长;
   歌曲名中包含Unicode编码范围ff01–ff5e的全宽字符;

新增功能:
①增加发送windows媒体虚拟键值功能(同nowplaying插件WLM类型控制方式)
②新增歌词嵌入任务栏功能
https://bbs.rainmeter.cn/forum.php?mod=image&aid=200361&size=300x300&key=58a5bf8756be424d&nocache=yes&type=fixnone
https://bbs.rainmeter.cn/forum.php?mod=image&aid=200362&size=300x300&key=c326624cc66dd9d6&nocache=yes&type=fixnone


;1.1版本新增命令
;增加发送windows媒体虚拟键值功能(同nowplaying插件WLM类型控制方式)
;[!CommandMeasure Parent "playpause"]
;在原来的基础上能够控制网易云播放器的暂停
;[!CommandMeasure Parent "next"]
;媒体下一首
;[!CommandMeasure Parent "prev"]
;媒体上一首
;[!CommandMeasure Parent "stop"]
;媒体停止播放


;1.1版本父节点新增选项:
TaskBarDialog=1
;新增歌词嵌入任务栏功能,缺省为0,=1时开启
FontFace=微软雅黑
;任务栏歌词字体



======分割线============分割线============分割线============分割线============分割线============分割线============分割线============分割线============分割线============分割线============分割线======


20.8.3
之前看到了风飏大佬的作品Eurydice播放器(贴吧链接https://tieba.baidu.com/p/4788710033);然后起意准备做一个带歌词的网易云播放器。结果做到一半发现风飏大佬一年前已经做过一个,于是就根据大佬做的【Eurydice2019】(贴吧链接https://tieba.baidu.com/p/6320634720)逐步完善了我的dll插件功能;

皮肤的内存占用率降到了(9.7M-3.4M=6.3M)。
https://bbs.rainmeter.cn/forum.php?mod=image&aid=200320&size=300x300&key=45ce73bfdf3aca9a&nocache=yes&type=fixnone
插件父节点能够返回进度值以及歌曲长度(作为maxValue),所以可以直接用于Bar节点;
多线程降低资源使用,改变歌词刷新模式,设置歌词切换等待值(下图中的Sleeping_for),能够快速切换歌词显示的同时不占用过多的CPU资源。
https://bbs.rainmeter.cn/forum.php?mod=image&aid=200321&size=300x300&key=e805f43459464116&nocache=yes&type=fixnone
下面是插件例程:
;--------------------------------------
;Plugin: lyric-online.dll
;--------------------------------------
;插件命令
;[!<span style="color: rgb(51, 51, 51);">CommandMeasure </span>Parent "TrackChange"]
;音轨改变命令,包括重置进度、重新搜索歌曲、重新下载歌词
;[!<span style="color: rgb(51, 51, 51);">CommandMeasure </span>Parent "Reloadinfo"]
;重新搜索歌曲信息命令,并重新下载歌词
;[!<span style="color: rgb(51, 51, 51);">CommandMeasure </span>Parent "ChangeLrc"]
;切换同名同歌手的歌曲,并重新下载歌词
;[!<span style="color: rgb(51, 51, 51);">CommandMeasure </span>Parent "ChangeLinage"]
;单双行切换
;[!<span style="color: rgb(51, 51, 51);">CommandMeasure </span>Parent "ChangeMode"]
;是否翻译切换
;[!<span style="color: rgb(51, 51, 51);">CommandMeasure </span>Parent "OffSet+"]
;歌词前进500毫秒
;[!<span style="color: rgb(51, 51, 51);">CommandMeasure </span>Parent "OffSet-"]
;歌词后退500毫秒
;[!<span style="color: rgb(51, 51, 51);">CommandMeasure </span>Parent "OffSetClear"]
;歌词偏移量清零
;[!<span style="color: rgb(51, 51, 51);">CommandMeasure </span>Parent "OffSetReset"]
;歌词偏移量重置为父节点下的设置
;[!<span style="color: rgb(51, 51, 51);">CommandMeasure </span>Parent "playpause"]
;歌词进度暂停和开始命令


Measure=Plugin
Plugin=lyric-online
Name=[&mPlayer]
;输入歌曲名
Artist=[&mArtist]
;输入歌手名
DownloadPath=temp
;下载文件夹,在皮肤文件夹内
Cover=cover
;封面节点名
Cover1=cover1
;若要使用插件自带渐变刷新动作,需要复制一个相同属性的封面节点
CoverUpdate=1
;封面刷新模式;缺省为1
;=0:直接切换,不需要Cover1
;=1:插件自带渐变刷新,与CoverUpdateRate、CoverUpdateDuration配合
;=2:使用自定义刷新动作,与CoverUpdateAction配合使用
CoverUpdateRate=100
;封面刷新帧率,缺省为50FPS
CoverUpdateDuration=100
;封面切换时间,缺省为400,单位毫秒
CoverUpdateAction=[]
;自定义刷新动作
lrc_ctrl=lyricctrl
;单行歌词节点
lrc_ctrl1=lyricctrl1
;双行歌词节点1
lrc_ctrl2=lyricctrl2
;双行歌词节点2
OffSet=-50
;歌词偏移量,缺省为0,单位为10毫秒,即100为1秒;正值表示歌词延迟(前进),负值表示歌词提前(后退)
linage=0
;歌词行数,缺省为0
;=0:双行显示歌词
;=1:单行显示歌词
mode=0
;是否显示翻译,缺省为0
;=0:有翻译歌词时显示翻译
;=1:不显示翻译
DynamicVariables=1
;配合musicplayer插件使用时需要置1
UpdateDivider=1
;此measure负责刷新进度值,可直接用于Bar节点
;如不需要进度值可设-1



Measure=Plugin
Plugin=lyric-online
ParentName=Parent
Type=Title
;返回歌曲详细信息,格式为:
;歌曲名(换行)描述信息(换行)专辑名(换行)歌手(换行)同名歌曲数
Type=albumNAME
;返回专辑名(字符串)以及同名歌曲编号(数值)
Type=name
;返回歌曲名,由于musicplayer插件根据字符'-'来拆分名称和歌手,若歌曲名中出现'-'则会拆分错误,所以使用API返回的名称
Type=artists
;返回歌手名,理由同上
Type=alias
;返回描述信息(字符串)以及同名歌曲编号(数值)
Type=songcnt
;返回同名同歌手的歌曲总数
Type=lyric
;返回单行歌词(字符串)以及歌词编号(数值)
Type=lyric1
;返回单行歌词(字符串)以及歌词编号(数值)
Type=lyric2
;返回单行歌词(字符串)以及歌词编号(数值)
Type=lyriccnt
;返回歌词总数



雨滴88 发表于 2020-8-4 01:20:51

这歌词插件没有延迟了,确实不错!不足还是需要使用到热键,优点就是封面及歌词自动下载到本地自动更新不占用过多内存。{:10_443:}

CrazyCat404 发表于 2020-8-4 10:07:59

雨滴88 发表于 2020-8-4 01:20
这歌词插件没有延迟了,确实不错!不足还是需要使用到热键,优点就是封� ...

因为设置了歌词偏移量,风飏大佬的lua脚本也有这个设置,但是我看不太懂lua代码????。
还有就是线程睡眠时间的设置,比定时刷新要反应快,占用cpu可能还要低点。
歌词其实也是放在内存里的,不然从文件里读取比较麻烦。

热键的问题,因为网易云没有开放内存,不能直接控制,不然nowplaying插件就可以控制网易云了。musicplayer的控制方法也是热键控制,区别就是vbs命令和MFC命令了。

我有你的本子 发表于 2020-8-5 11:49:18

可以 的,大佬很强

anice610 发表于 2020-8-6 21:54:59

感谢!!!

maxtcl888 发表于 2020-8-8 10:29:25

感觉很喜欢 挺好的

不见有情 发表于 2020-8-10 07:55:41

{:10_470:}已经绑定网易云了,控制什么的可以用,但是封面歌词什么的都无法显示,请问是怎么设置的,昨天入的雨滴,还不是很明白

CrazyCat404 发表于 2020-8-10 11:24:30

不见有情 发表于 2020-8-10 07:55
已经绑定网易云了,控制什么的可以用,但是封面歌词什么的都无法 ...

看一看雨滴的日志出现什么报错了

CrazyCat404 发表于 2020-8-10 12:34:27

不见有情 发表于 2020-8-10 07:55
已经绑定网易云了,控制什么的可以用,但是封面歌词什么的都无法 ...

可能你没有安装插件吧,重新安装一下皮肤,把插件选项勾一下

雨滴88 发表于 2020-8-11 17:26:07

CrazyCat404 发表于 2020-8-4 10:07
因为设置了歌词偏移量,风飏大佬的lua脚本也有这个设置,但是我看不太� ...

nowplaying插件是可以控制网易云的基本上下曲、暂停、播放这些,播放器类型设置:PlayerName=WLM 就可以,其他的功能拓展确实使用热键比较实用。
页: [1] 2 3 4
查看完整版本: 歌词插件-网易云API获取歌词