Tag DeadBeef

2011

使DeadBeef播放器支持gbk编码

平时比较爱收集无损音乐,其实只是一种嗜好吧,就我电脑那破声卡,无损听起来和320kbps的mp3没啥区别的。 好在有校内的PT站,各种无损音乐下载起来非常方便也非常迅速。只是,不管是ape还是flac的无损音频文件,往往一张专辑就是一个整轨的文件,播放的时候需要另外的cue文件进行分轨。 以前用KDE桌面时我喜欢用Amarok播放器,现在用GNOME桌面比较喜欢用DeadBeef播放器,都是支持cue文件分轨的。跟Windows上foobar2000之类的播放器通过cue文件加载ape/flac文件的方式不同,Amarok和DeadBeef的做法是先加载ape/flac文件,然后再加载同目录下的cue文件。 不管怎样,这对于中文用户来说就产生了一个不可回避的问题:乱码。 根本原因在于,Linux上采用的中文编码大多数是UTF-8,而Windows上采用的中文编码是gbk,这就导致Windows上生成的文本文件(cue文件也是文本文件)如果采用了默认的gbk编码,在Linux上使用时就会产生乱码。 如果下载的cue文件采用了gbk编码,在DeadBeef播放器里加载时就会乱码。 好在DeadBeef是一个完全开源的软件,这也就意味着其源代码是完全可以获得并且修改的。如果修改源码使其支持gbk编码,岂不是就可以解决乱码的问题了? 答案是肯定的。 在Google上搜索了一下,发现Ubuntu中文论坛上已经有人给出过决方案(看来我不是最早想到的...唔) 但是,DeadBeef版本更新得很快...原来的代码已经没法直接使用了,还是得自己动手修改。 首先,从DeadBeef项目主页下载源码,最新版本是0.5.1 。 解压源码之后,找到junklib.c文件,和Ubuntu中文论坛上提供的做比较,发现需要修改一下几处: 第687行, enc = "cp1251";修改为enc = "gbk"; 第769行,enc = "cp1251"; 修改为enc = "gbk"; 第3388行,return "cp1251";修改为return "gbk"; 第3390行,return "cp1252";修改为return …

#linux#DeadBeef