1月23
对于qmmp的这个页面,我是非常熟悉了,因为这是第一款著名的播放器将lrcShow-X作为推荐软件放置于项目首页,并提供了相关链接,出于一些虚荣心的作祟,我还是经常去看看的——只是看看。

不过呢,昨天倒是仔细研究了一下这个页面上提供的一个mpris-remote的链接,其中提及了为mpd提供dbus接口的一个模块。说到mpd,我个人还是非常喜欢的,这种C/S架构的播放器,小巧精致,而且非常灵活,前端也非常多。苦于mpd本身并没有提供dbus接口,因此我也不是经常用,毕竟对于lrcShow-X来说,没有什么开发价值。不过昨天一番研究下来,还是决定安装一个mpDris试一下,不管成功与否,我都尝试过了,也对得起很多朋友要求lrcShow-X支持mpd愿望。

gentoo本身的portage没有提供mpDris的ebuild,好在网上有,google一把即可,而且安装顺利,只是依赖了一个python-mpd,好在体积不大。完成后在终端启动mpDris,并在终端启动qdbusviewer,这样就可以非常方便直观的来浏览mpDris提供的各个dbus接口细节。这里要非常感谢我的朋友和合作伙伴OutLikeAShoe,非常厉害的意大利高材生,是他为lrcShow-X撰写了灵活、扩展性强的dbus接口中间层,这就使得为lrcShow-X写某个播放器支持模块变得非常容易。大概也就花了5分钟时间,在拷贝amarok2模块的基础上略微修改一些内容,再加上qdbusviewer的帮助,dbus支持模块基本上就成了,接下来就是测试了。测试也很顺利,只是mpd的dbus和amarok2在一个地方有出入,就是amarok2在切换音轨的时候,除了音轨切换信号外,还发出了播放器状态切换的信号,而lrcShow-X只是监听播放器状态信号;而mpd的,则是仅仅发出了音轨切换的信号,因此这里需要处理一下,也很简单,在dbus模块里,额外加上trackChange信号的连接,并定义:接收到trackChange信号后,获取一次播放器状态,然后直接调用statusChange信号所调用的函数。

最终,得出了对mpd完美支持的结果。略微美中不足的是,通过dbus获取的音轨时间点只能精确到秒。大功告成后,终止了mpDris程序。但是意外发升了,lrcShow-X并没有出现dbus链接出错的现象,而是依旧漂亮的随mpd工作着。这着实令我大跌眼镜,因为终止mpDris,应该就是意味着停止了mpd的dbus服务啊。ps aux | grep mpDris的输出显示,mpDris的确在后台运心中,pkill掉后,lrcShow-X终于出错了。那么也就是意味着,只要安装了mpDris,启动mpd服务后自然就提供了dbus服务,而并不像mpDris的README中所说的一定要运行mpDris。

至此,在安装mpDris这个依赖后,lrcShow-X最终能够支持mpd了!其副产品就有点令人啼笑皆非了,lrcShow-X提供了简单的对所有支持的播放器的回放控制,也可以认为,lrcShow-X当前已经是mpd的一个前端了,而且是一个独一无二非常另类的前端!

目前的SVN 224版本已经提供了mpd的支持,可以co下来帮助我测试一下,小三谢过了。

SVN225版本也已经开始提供对xmms2的支持,也光荣的成为xmms2前端的一员。具体操作可以参看本站lrcShow-X更新帖。

3 条评论 to “一不小心,做了个mpd、xmms2前端..........”

hchl Email 说:
2010/07/14 11:21
我现在就把lrcShow-X作为mpd的前端,但是如果增加一个播放进度条,并且可以实现播放进度条的拖放就更好了。
fanhe Email 说:
2010/01/27 02:08
没用mpd,我个人是想不久后写个xmms2的gui的client的cool
admin 回复于 2010/01/27 08:33
lrccShow-X目前也是xmms2的前端,可以看一下更新帖
欢迎测试反馈。
wygd 说:
2010/01/24 06:41
ubuntu9.10 mpd 成功测试。
但是从1.3开始启动的时候软件界面会花屏,只有手动刷新界面才会变好。
admin 回复于 2010/01/24 11:16
在参数设置里,将滚轮改变透明度的选项取消掉、或者启用复合窗口试试,
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]