语笑嫣然 发表于 2013-11-13 03:13:41

关于国产播放器在雨滴上获取信息的方法

代发教程帖,作者@l3c2s1

很多朋友在使用国产播放器时都会有疑问,为什么不能读取封面、时长、进度等信息,从而怀疑是否皮肤出现问题或是自己不会修改
在这里作个简单的说明:因为国产播放器不开放接口,所以NowPlaying插件不能获取播放器的信息,也无法控制其播放暂停等,于是诞生了这篇帖子,希望能够给遇上同样问题或尝试解决问题的朋友一些参考及帮助(谢谢suixin和时光的纠正~\(≧▽≦)/~)


原文开始:
(目前只能读取基本的歌曲名歌手)

千千篇
(仅限于经典版的千千,百度千千是不管用的,经典版本官网仍有下载)
能获取歌手名/歌曲名/和专辑名,是利用读取千千静听窗口标题的方法
利用雨滴自带的官网插件Windowmessageplugin.Dll(可以查阅手册)即可以读取指定窗口的窗口标题,然后利用正则表达式 来修正下信息的格式 就可以分别得到歌曲信息
以下代码可以直接复制黏贴使用 只要千千启动 就能读取和路径没有关系
前提需要对千千做以下设定:

千千静听选项
1.去掉“在任务栏滚动歌曲标题”,不要勾选
2.播放列表选项勾选 “在歌曲标题前显示序号” 和 “有标签时的格式”
3 在 “有标签时的格式”后面的文本框里 输入%A - %T - %L (注意要大写)
Measure=Plugin
Plugin=Plugins\Windowmessageplugin.Dll
Windowclass=TTPlayer_PlayerWnd
Regexpsubstitute=1
Substitute="(.*)-(.*)-(.*)-(.*)":"\1","千千静听.*":""," ":""
Dynamicvariables=1


MeasureName=Measuregeshou
Meter=STRING
X=1
Y=55
StringAlign=Left
FontSize=13
Text=歌手:%1
AntiAlias=1
Dynamicvariables=1
--------------------------------------------------------------------------------歌手输出


Measure=Plugin
Plugin=Plugins\Windowmessageplugin.Dll
Windowclass=TTPlayer_PlayerWnd
Regexpsubstitute=1
Substitute="(.*)-(.*)-(.*)-(.*)":"\2","千千静听.*":""," ":""
Dynamicvariables=1


MeasureName=Measuregeming
Meter=STRING
X=1
Y=75
StringAlign=Left
FontSize=13
Text=歌名:%1
AntiAlias=1
Dynamicvariables=1
---------------------------------------------------------------------------------歌名输出


Measure=Plugin
Plugin=Plugins\Windowmessageplugin.Dll
Windowclass=TTPlayer_PlayerWnd
Regexpsubstitute=1
DynamicVariables=1
Substitute="(.*)-(.*)-(.*)-(.*)":"\3","千千静听.*":""," ":""


MeasureName=Measurezhuanji
Meter=STRING
X=1
Y=95
StringAlign=Left
Text=专辑:%1
FontSize=13
AntiAlias=1
Dynamicvariables=1
----------------------------------------------------------------------专辑名输出酷狗篇

酷狗原理类似,不过需要一个外部的插件GetKugou.exe (此插件是论坛的落地开花编写无图标 无托盘 静默后台运行 不会干扰你)
我已经上传到论坛里,大家可以去下载 传送门
这个插件可以读取酷狗的标题,在皮肤文件夹里生成一个MusicInfo.txt
里面含有歌曲信息,我们可以用Quoteplugin.Dll来读取后用正则表达式修正,需要你在酷狗里设置 “在任务栏显示正在播放的歌曲”
酷狗最小化和托盘状态都有效,只是变成魔方模式时无法读取
你可以写一个bang指令来在播放器打开时加载这个EXE,或者像下面皮肤载入时自动打开:
OnRefreshAction=["#CURRENTPATH#GetKugou.exe"]


Measure=Plugin
Plugin=Plugins\Quoteplugin.Dll
Pathname=MusicInfo.txt
Regexpsubstitute=1
DynamicVariables=1
Substitute="(.*)-(.*)-(.*)":"\1","盒2013官方免费下载_酷狗唯一官方版下载站 - Internet Explorer, optimized for Bing and MSN":"2013","-":""


Measure=Plugin
Plugin=Plugins\Quoteplugin.Dll
Pathname=MusicInfo.txt
Regexpsubstitute=1
DynamicVariables=1
Substitute="(.*)-(.*)-(.*)":"\2","盒2013官方免费下载_酷狗唯一官方版下载站 - Internet Explorer, optimized for Bing and MSN":"酷狗音乐","-":""






Meter=String
Measurename=Measuregeming
X=1
Y=40
FontSize=11
Antialias=1
AutoScale=1
Text="歌曲名:%1"
DynamicVariables=1
---------------------------------------------;歌曲名

Meter=String
Measurename=Measuregeshou
X=1
Y=63
FontSize=11
Antialias=1
AutoScale=1
Text="歌手名:%1"
DynamicVariables=1
---------------------------------------------;歌手名
最后综述一下我的方法和nowplaying.dll以及ttplay.dll插件的不同点:


[*]nowplaying.dll 是雨滴官方插件对国外播放器都可使用,是因为国外播放器能开放端口向外输出信息,以前能读取国内老版本播放器的歌曲信息,是利用它们向MSN发送“正在播放的歌曲信息”这个功能来实现的,现在国内各大播放器都没有这个功能了(关闭了这个接口)。nowplaying.dll 有个小缺点,如果你手动刷新皮肤,会导致歌曲信息消失,只能播放器再次切歌的时候才会再显示


[*]ttplay.dll这个插件比较老了,不过对经典版千千还能用,不能读专辑名,会附带“千千静听”几个附加的文字

l3c2s1 发表于 2013-11-13 12:20:17

本帖最后由 l3c2s1 于 2013-11-13 20:48 编辑

QQ音乐也可以用此方法获取,只能显歌名和歌手,而且会有信息自己滚动的问题,这是QQ音乐导致的.
Measure=Plugin
Plugin=Plugins\Windowmessageplugin.Dll
Windowclass=ATL:0073C1C8
Substitute="-":" "
Regexpsubstitute=1
Dynamicvariables=1


MeasureName=Measuregeshou
Meter=STRING
X=1
Y=55
FontSize=13
AntiAlias=1
Dynamicvariables=1

书生丨 发表于 2013-11-13 21:52:18

感谢楼主,学会了

傻大个牌纯碱 发表于 2013-11-14 08:13:54

花仔为啥不申请技术组呢?@语笑嫣然

devil灬冥羽 发表于 2013-11-14 09:20:33

嫣然姐v5!!!!!

zideas 发表于 2013-12-5 23:04:31

daizibin 发表于 2014-4-10 12:50:09

这个还没学会呢,加油的学吧

游戏王丶 发表于 2014-6-13 00:47:43

貌似超级厉害的样子

719611923 发表于 2014-6-23 17:59:07

似懂非懂的赶脚

炽天使之翼 发表于 2014-9-9 23:03:51

谢谢楼主的指导,看来我还是不用国产播放器啦
页: [1] 2 3
查看完整版本: 关于国产播放器在雨滴上获取信息的方法