Jul 21

项目介绍
Exaile-cn是一个对Exaile进行扩展的项目,通过对Exaile进行扩展,使Exaile功能上更加丰富,更加符合中国用户的使用习惯,给国内Linuxer提供一个更加本土化的播放器.

安装方法
注意:Exaile-cn现在只支持Exaile0.3.2.0,如果你的Exaile不是0.3.2.0,可能会无法正常使用。
先运行whereis exaile,查找exaile的位置,下面假设exaile位于/usr/lib/exaile/下
1.解决乱码问题方法:将_id3.py覆盖到/usr/lib/exaile/xl/metadata目录下(需要root权限)
2.豆瓣封面插件安装方法:将doubancovers复制到~/.local/share/exaile/plugins/(如果没有目录,先创建目录)下,然后启动exaile,选中插件选项即可
3.歌词同步显示插件安装方法:先把engine_unified.py和engine_normal.py覆盖到/usr/lib/exaile/xl/player,再将LyricDisp目录复制到~/.local/share/exaile/plugins下,然后启动Exaile,选中插件选项即可
4.面板标签竖行显示:将__init__.py覆盖到/usr/lib/exaile/xlgui/目录下(需要root权限)
5.豆瓣电台插件安装方法:将track.py覆盖到/usr/lib/exaile/xl/trax/目录下(需要root权限),将doubanfm复制到~/.local/share/exaile/plugins/,启动exaile,选中插件选项,然后在Douban.FM插件的设置里面填写用户名和密码,重启exaile,在文件菜单里面会显示豆瓣电台列表

更新说明
10.7.21
增加豆瓣电台插件
改进歌词滚动显示
支持歌词文件名的自定义
支持调整歌词行距
支持exaile0.3.2
增加透明度设置
10.4.2
支持Exaile0.3.1.0
增加了面板模式显示歌词方式
增加了面板标签竖行显示补丁
增加了手动搜索歌词选项
增加了搜狗歌词服务器
10.1.1
添加了修改过的__init__.py,解决issue 7
09.12.31
修复了播放音乐时无法启用歌词插件的bug
修改了歌词文件分析方式,解决无法正确读取一行歌词有多个时间标签的歌词的bug
修复了不能保存歌词修改的bug
添加了歌词插件透明度、歌词目录、歌词颜色的选项

下载 :http://exaile-cn.googlecode.com/files/exaile-cn100721.tar.gz

Jun 7

正在实现歌词滚动,初步的想法是现有一个layout,然后在上面放上一个vbox,这样vbox就可以自由移动了,然后根据歌词行数在vbox上放一些label……有几行放几个

在歌曲播放的时候根据当前歌词所在的行的位置调整vbox的位置……大概的思路就是这样

实现起来不是很困难,不过却被另一个问题给难住了……

我想让当前歌词行实现不同的颜色,这不难,难的是怎么把变过色的label恢复回以前的颜色,这个直接悲剧了,不能清一色都恢复成黑色,因为如果gtk使用的皮肤也是黑色的话就悲剧到什么也看不出来了……

目前还没有想到好的解决办法,很操蛋,主要是到现在也没看到可以获取当前文字颜色的方法………………………………我靠

只能是把背景改成黑色的了,千千静听不也是这样写的吗……

 

Feb 16

                                        ’沧浪之水清兮,可以濯吾缨;沧浪之水浊兮,可以濯吾足‘——《渔夫》

    Exaile-cn忙活了很长时间了,花了很大的功夫,下了很大的力气。现在程序写得差不多了,功能上基本上没什么可以再往上加的了,让人感觉很迷茫,不知道该再为这个小小的项目做些什么……挺无奈的,这种感觉……恩,真的是有点不知所措了。

    目前看来,实际上真正需要的功能是不多的,而现在基本上都实现过了,效果还都不错,以后该做些什么,真的不知道了……

    现在的学习压力也愈来愈大,有时候会有放弃项目的冲动……

    我的能力实在有限,有些功能可以说是心有余,力不足啊,要学习python,pygtk,pango,cario实在是时间,精力有限,没有办法,要把所有的东西都掌握是个很长的时间,还要找bug,写patch,真的很累……

Jan 17

今天写了近两个小时的代码,是关于鼠标滑轮滚动调整歌词的功能,进展非常之不顺利……太不顺利了……

一开始先goooooogle了一番鼠标event,找到了一个叫scroll-event的,ms相当好用,具体用法可以参考这个:http://zuosa.net/9nha.u

最初设想把event挂到window上就可以了,但是写出代码后发现并不成功,当鼠标是在label上滚动滑轮时,没有任何反应……

也不知道是为什么,就开始盲目处理,处理了好半天,都是原地踏步了……没有任何进展,后来想起了,这是因为label并不能发event的缘故……具体情况可参见pygtk教程,必须要配合eventbox使用

费了老半天去修改界面文件,把所有的label都换成eventbox,然后再在eventbox上加label,够麻烦的

完成了这步,又有了新问题——接到事件后该如何响应……迷茫了,最后马马虎虎写了一段不上去,算是能用了

本来是想通过调歌词来调时间的,可是这样不能实现,因为歌词是精确到毫秒的,可是exaile的seek功能只能精确到秒……无奈

所有只能是通过调时间来调歌词,可这样效果就大减了,不管怎么样,总算又写了一些代码……