让Deadbeef支持GBK标签,彻底解决中文乱码问题,增加歌词显示

目前Deadbeef最新版本为: 0.5.1
一,让DeaDBeeF支持GBK标签,彻底解决乱码问题
这是通过修改Deadbeef源码实现的。作者好像是俄罗斯人?里面只有对英文和俄文的判断,没有 考虑中文编码。。。
在网上看到有patch可以实现显示中文GBK字符的,不过看了它源码,发现它只是通过把cp1251修改为gbk而已。这样显示中文的确是没有问题的,但是如果是俄文等使用cp1251的语言,则会显示成乱码。从追求完美的角度来讲,这样修改有些勉强。
这里我制作了一个patch,经自己测试使用没有问题:

deadbeef-0.5.1-Chinese-GB-patch.diff (2.7 KB)

补丁应用:

1
2
cd deadbeef-0.5.1
cat ../deadbeef-0.5.1-Chinese-GB-patch.diff | patch

不想打补丁的直接下我修改好的源码吧:

deadbeef-0.5.1-modified.tar.bz2 (2.2 MB)

PS:
在我使用的Archlinux + xfce4 环境下,貌似自己下载源码编译后播放的图标没法显示,于是hack了一下(有些勉强,呵呵),如果你是用gnome或KDE那就按你自己的系统hack之了:

deadbeef-0.5.1-archlinux-gtkui-patch.diff (973 字节)

关于GB 18030(来自维基百科):

GB 18030,全称:国家标准GB 18030-2005《信息技术 中文编码字符集》,是中华人民共和国现时最新的内码字集,是GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》的修订版。与GB 2312-1980完全兼容,与GBK基本兼容,支持GB 13000及Unicode的全部统一汉字,共收录汉字70244个。
GB 18030主要有以下特点:
與 UTF-8 相同,采用多字节编码,每个字可以由1个、2个或4个字节组成。
编码空间庞大,最多可定义161万个字元。
支持中国国內少数民族的文字,不需要动用造字区。
汉字收录范围包含繁体汉字以及日韩汉字

字节结构

  1. 单字节,其值从0到0x7F。
  2. 双字节,第一个字节的值从0×81到0xFE,第二个字节的值从0×40到0xFE(不包括0x7F)。
  3. 四字节,第一个字节的值从0×81到0xFE,第二个字节的值从0×30到0×39,第三个字节从0×81到0xFE,第四个字节从0×30到0×39。

由于GB18030是完全兼容GB2312和GBK的,因此这里我用的GB18030.

关于GBK,见:http://zh.wikipedia.org/wiki/GBK
还有GB2312 (这个是我们通常在国内那些古老的网页中最常见的):http://zh.wikipedia.org/wiki/GB_2312

要查看iconv支持的编码:

1
iconv -l

二,增加歌词显示
这里要用到两个插件,一个给deadbeef添加dbus支持的插件deadbeef-mpris,另一个则是显示歌词的插件lrcShow-X(基于pyqt开发)

deadbeef-mpris下载地址:http://sourceforge.net/projects/deadbeef-mpris/
https://code.google.com/p/deadbeef-mpris-plugin
目前最新版是2.1 ,下载后解压目录到deadbeef源码的plugins目录下面,然后跳转到该目录,然后:

1
2
3
./configure --prefix=你编译deadbeef时的PREFIX
make
sudo make install

lrcShow-X下载地址:
https://launchpad.net/lrcshow-x
下载后解压运行 lrcShow-X.py 即可。
如果没有安装过pyqt,先安装一下,不然无法运行:

1
sudo pacman -S python2-pyqt

好了,秀一下歌词秀吧:

背景透明歌词秀+完美中文显示:

全屏歌词显示效果:

OSD显示模式:

更多
6 Responses Post a comment
  1. 安装OSDLyrics让Deadbeef完美显示歌词 | Hacklog

    [...] 先前写过《让Deadbeef支持GBK标签,彻底解决中文乱码问题,增加歌词显示》一文,当时用的是deadbeef-mpris插件配合lrcShow-X这个python写的歌词显示软件。不过lrcShow-X有个不好的地方,那就是在deadbeef中切换了歌曲之后,歌词显示不会自动切换(也就是说它不能检测到当前播放的歌曲已经不是最首先播放的那一首了),还有就是歌词很多时候不能自动下载。缺点归缺点,还是非常感谢lrcShow-X的作者付出的劳动。 这里我要介绍另外一款能让deadbeef完美显示歌词的小软件:OSDLyrics 项目地址:https://github.com/osdlyrics/osdlyrics osdlyrics作者博客:http://sarlmolapple.is-programmer.com/ [...]

  2. deadbeef 0.5.2-rc3 发布 | Hacklog

    [...] http://ihacklog.com/?p=5621 相关日志2011年07月21日 // 让Deadbeef支持GBK标签,彻底解决中文乱码问题,增加歌词显示 (4)2011年05月29日 // 挖出fcitx4.0内置对VIM输入模式的切换支持 (5)2011年05月22日 [...]

  3. 荒野无灯

    目前我没有在用UBUNTU哦,编译deadbeef-mpris应该很容易的吧~~

  4. skubuntu

    好阿 ,我等伸手党期待您能做出包含歌词显示插件的deb啊 我使用您path后的包安装 怎么都不成功

  5. 荒野无灯

    linux下面一个很好用的音乐播放器,值得一试。 :wink:

Leave a Reply

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS