存档

文章标签 ‘squeezecenter’

SqueezeBox Server 的中文问题的全面解决之道

2009年12月30日 27 条评论

SqueezeBox 播放器的服务器程序,依发布时间顺序,用过的名称有:SLIMP3 Server(v3.1b1 – v4.2)、SlimServer(v5.0.0-v6.5.4)、SqueezeCenter(v7.0.0-v7.3.4)、SqueezeBoxServer(v7.4.0-当前版本)。瞧着有点乱,是不是?为了行文方便,以下统一称它为 SC Server。

所有正式发布过的 SC Server 历史版本,均可从官方网站下载:http://downloads.slimdevices.com/

SqeezeBox 播放器是澳大利亚 Slim Devices 公司研发的。在它发布了 SqueezeBox Classic V3 之后,到 2008 年时,被 Logitech 收购了。中国的音响发烧友,这两年也陆续开始接受并喜爱上了 SqueezeBox 数字播放器。但中文化一直是个问题,长期困扰着中国的用户。

主要问题:

1、SqueezeBox Classic V3、SqueezeBox Boom 和 Transporter 的屏幕显示汉字丑陋。
2、使用 .cue 文件的整轨专辑乱码。表现:在 SC Server 中,浏览专辑、浏览音乐文件夹等处中文乱码,播放时,曲目清单乱码。
3、保存在 favorites 里的中文乱码。

准备工作:

由于 SC Server 版本众多,所以我先假定你正在使用当前版的 SC Server,即 7.4.1 版。以下叙述以 Windows 版为例,Linux 版大致相同。我用 SqueezeBox Classic V3 作演示(下称SB3)。

1、SC Server 7.4.1 的取得。请从官方网站直接下载:http://www.mysqueezebox.com/download。如果你用 Windows 操作系统,请选 “Windows 2000/XP/Visa/7 (50MB)”,Linux 则根据你的 Linux 发行包,分为 for Debian/Redhat/Perl 版,请根据你的实际情况选用。在这里,我用的是“Perl Source Code(tar.gz-55MB)”。

2、安装 SC Server 7.4.1。这一步应该没有什么可讲的,请按系统提示,一步一步操作即可。如果遇到需要输入 mysqueezebox.com 帐号,如果你有就填入,没有就去注册一个。一切均有提示,在此我就不多说了。

3、安装完 SC Server 之后,启动它,然后打开浏览器,访问:http://127.0.0.1:9000,在 SC Server 的 WebGui 界面的右下角,找到“Settings”,点击它,弹出新窗,打开设置界面。“Basic Settings”的标签的第一项,就是“Language”,即设置语言的地方。这里,请点开下拉菜单,选择你熟悉的“简体中文”。之后,请点击右下角处的“Apply”,保存设置(立即生效)。

4、现在,回到 SB3 吧。

第一个问题:SB3 屏幕显示汉字时缺笔划,美观度差。

问题成因:SC Server 自带的屏显字库,不能正确显示中文字符。
 
解决方法:从你的 XP 的字库里,寻找一款能够显示点阵汉字时不缺笔划的字体,去替换 SC Server 的字库。SC Server 的字库文件名是:CODE2000.TTF,存放目录:C:\Program Files\Squeezebox\server\Graphics。在这里,我将 XP 自带的“黑体”字库,将它拷出来,改名为 CODE2000.TTF,然后替换到 SC Server 的上述目录里去。我用 XP 64 位英文版,它的黑体中文字库文件名是:“simhei.ttf”。另外,安装 MS Office 之后,你可以找到一个叫“华文中宋”的中文字库,这是我当前的选择。当然,你也可以用其他中文字库尝试着替换一下看看。

上面提到的字体,都是有版权的,所以我在这里不能提供下载,请根据我提供的线索自行寻找。

替换完 CODE2000.TTF,然后重启 SqueezeBox Server,生效。 

第二个问题:使用 .cue 文件的整轨专辑乱码。在 SC Server 中,浏览专辑、浏览音乐文件夹等处中文乱码,播放时,曲目清单乱码。

问题成因:不明。我猜是 SC Server 开发组中,应该没有中国人或者日本人。西人对双字节的字符文字的处理,不太留意,结果导致在历史各个版本中,这个问题被反复修正,又反复在后续版本中再次出现。

解决方法一:寻找并使用一个正常工作的版本。经验证,7.2.1 这个版本对中文最友善。其次是 7.3.2 这个版本。SC Server 历史版本的下载网址是:http://downloads.slimdevices.com/

这个方法推荐给下述播放器的使用者:SqueezeBox Classic V3、Boom、Transporter。

注意:这个方法建议你一定要把 .cue 保存成 utf-8 格式,并且你的操作系统也能处理 utf-8,这样才不会中文乱码。我喜欢用的一个文本编辑器是 Ultraedit32,用它可以将 .cue 改存成 utf-8 格式。Ultraedit32 的官方网址:http://www.ultraedit.com

还有一点需要提醒的是:请忽略 SC Server 7.3.4 这个版本,因为它已经被官方放弃了,没有成为最终的稳定发行版。

解决方法二:对于使用双字节字符的专辑,例如“中文简体/繁体/日文”,停用整轨,改用分轨。

对于 SqueezeBox Radio 和 Touch 的玩家,“解决方法一”是失效的。原因是,Radio 和 Touch 因为“新特性”的原因,必须要和 SC Server 7.4 或者以上的版本配合。

经过中文用户多次投诉,SC Server 开发组已经纠正了当前版本“浏览音乐文件夹”时的中文乱码问题。但是在浏览“浏览专辑”、“最新引进的音乐”时,如果你的专辑使用的是 .cue 整轨,中文仍然会乱码。虽然这个问题已经有人提交给了 bugfix 组,但目前仍然未见到修正版的出现。

经验证,停用整轨,改用分轨时,可以解决中文乱码。

我用 foobar2000 这个软件,做整轨转分轨的转换。当然,这种转换工作,仅限于使用双字节字符的专辑。对于只使用单字节西文字符的专辑,就没有必要做这一步了。foobar2000 的官方网址:http://www.foobar2000.org/

SqueezeBox 系列播放器通过 SC Server 变相支持 APE 文件的播放,但它对 APE 附带的 CUE 文件无视,所以 APE 整轨文件无法在 SqueezeBox 播放器里进行分轨播放。解决的办法是:将所有的 APE 文件转换为 FLAC 格式。我用 dBpowerAMP 转换器,dBpowerAMP 的官方网址:http://www.dbpoweramp.com/

第三个问题:保存诸如电台名称到 favorites 里时,电台名称不能用中文名,会乱码。

问题成因:这是一个 Web 编程问题。解决的办法就是修正 Web 程序,纠正它处理保存汉字的问题。

解决方法:我写这篇文章,当然不是为了来教会别人学写程序的。所以修正这个问题,还是交由 SC Server 开发组去做,我们耐心等侯就行了。那么,作为普通用户,还有其他变通方法吗?当然有的。既然我已经分析出,这个故障出现在将中文名称存盘时才会发生,所以我们可以透过避免让 SC Server 执行“保存中文名称”的动作,而只是让 SC Server 去读取并显示 favorites 里的中文电台名称。

我首先假定你需要保存到 favorites  里的电台不会太多。因为在 SqueezeBox 播放机里搜索到的电台,但凡是有中文名称的,可以通过点击“心形”标志,直接保存进 favorites,所以不会发生中文乱码。而没被 SqueezeBox 收录的中文电台,估计数目也不会太多。

好了,既然不让 SC Server 去“存”,那我用 ultraedit32 或者 Windows 里自带的写字板等文本编辑器去完成“存”中文的事好了。

用文本编辑器,将两个 —cut— 之间的内容,保存成文件:favorites.opml。

—cut—

<?xml version=”1.0″ encoding=”UTF-8″?>
<opml version=”1.0″>
  <head title=”Favorites”>
    <expansionState></expansionState>
  </head>
  <body>
    <outline URL=”电台流媒体的绝对网址” text=”中文电台名称一” type=”audio” />
    <outline URL=”电台流媒体的绝对网址” text=”中文电台名称二” type=”audio” />
  </body>
</opml>

—cut—

上面的是简单的 HTML 代码,我想你花点时间应该能看懂吧?参照上述格式,你可以添加更多的电台。

准备好 favorites.opml 这个文件后,请打开 SC Server 管理界面,找到 favorites,将鼠标放在 favorites 上,你会看到右侧有一个笔形标志,移动鼠标到这个标志上面,会显示“编辑”两字。现在,点击这个编辑键,进入 favorites 的二级菜单。在这里,请点击“import”,再点击“选择”,将刚才你保存好的 favorites.opml 文件找出来,然后点击“import”。

搞定。

重要:致使用 Squeezebox Radio、Squeezebox Touch 和 Squeezebox Duet 遥控手柄的用户:如果你看完上文,还是没有解决你的播放器的中文乱码问题,请接着看另一篇文章:《Squeezebox Radio、Squeezebox Touch 和 Squeezebox Duet 遥控手柄显示屏正确显示中文的方法

Squeezebox Radio 深度探索(二)

2009年12月26日 3 条评论

Logitech 在 2009 年 9 月正式发布并且上市了因特网收音机:SqueezeBox Radio(下称 SBR)

通过对 SBR 的进一步分析,我发现,所谓的新产品,无非就是一台换了壳 SqueezeBox Duet Control(下称 SBDC)。相似的硬件结构,几乎完全一样的目录结构,甚至固件的版本号也很接近。

P1010182 Squeezebox Radio 深度探索(二)
SBR 和 SBDC 的不同之处:

1、最明显的区别:外壳。SBR 是收音机造型;SBDC 是遥控器手柄造型。
2、SBR 使用外接AC电源适配器,供 SBR 使用的电池包需要另外购买;SBDC 使用充电电池。
3、SBDC 的电池仓隐藏有 SD 卡插槽,SBR 没有。
4、SBR 拥有 3.5 毫米线路输入接口,SBDC没有。
5、SBR 拥有红外遥控接收探头,可以被 SqueezeBox 遥控器控制,SBDC 没有这个探头。
6、SBR 有六个频道预设建,SBDC 没有。

SqueezeBox Radio 就是 SqueezeBox 遥控器

SBR 的硬件结构和固件上的高度相似性,意味着它就是一个换了壳的 SqueezeBox Duet Control。你可以在 SBR 上,执行在 SBDC 上完全一样的操作。一样地操作本机,一样地遥控家里其他的 SqueezeBox 播放机,一样和其他 SqueezeBox 播放机或 Transporter 同步工作。如果你曾用过 Duet Control,你将会毫无障碍地使用 SqueezeBox Radio。 

有用的链接:
SqueezeBox 玩家QQ群:42505325
SqueezeBox Radio 的官方产品资料页:http://www.logitechsqueezebox.com/products/squeezebox-radio.html
参考的文档:http://www.pandeqiang.com/fun-squeezebox-duet-remote-control.htm
Squeezebox Radio 深度探索(一):http://www.pandeqiang.com/squeezebox-radio-depth-exploration-of.htm