Redian新闻
>
基本搞定Kagu的中文显示 (N800,OS2008)
avatar
基本搞定Kagu的中文显示 (N800,OS2008)# PDA - 掌中宝
p*o
1
原来Kagu是用pygame显示文字。
打开/usr/lib/kagu/globals.py
在 font_o_cache = {} 下面加一行
font_o_cache_chs= {}
然后把 gprint_ret 这个函数改成
def gprint_ret(text,font_size=False,fg_color=False,bg_color=None):
global MAINFONTCOLOR
global MAINFONTBGCOLOR
global font_o_cache
global font_o_cache_chs
if not font_size: font_size = 36
if not fg_color: fg_color = MAINFONTCOLOR
#if not bg_color: bg_color = MAINFONTBGCOLOR
if font_size not in font_o_cache:
font_o_cache[font_size] = pygame.font.Font(None, fon
avatar
p*o
2
中文不能显示有两种情况。
一种是显示一个方块。这种情况kagu里面的中文是正确的,只是显示的时候
字体有点问题。我的那段code就是解决这个问题。
另一种就是乱码,特别是mp3文件。原因是kagu的scanner读取GB2312的id3
tag的时候不会自动转成unicode。一个方法是自己转mp3的id3 tag,你去搜
python mutagen,里面有个mid3iconv可以转。还有一个方法是改kagu-scanner.py,
当tag不是unicode的时候,按gb2312解码再丢到数据库里。可是maemo上那个
python里的gb2312解码被去掉了... 我在看怎么加。
你可以把kago的数据库下下来看/home/user/.kagu/kagu.db。如果里面是
乱码就是后一种情况。
暂时有另一个方法,就是把文件路径加到title字段中,打开kagu-scanner.py,
找到add_song这个函数,把
title = self._get_mut_val(mut, 'title')
改成
title = self._get_mut_val(m
avatar
p*o
3

kagu
你看到的是文件名,实际kago显示的是title/artist/album字段,你要找个sqlite
的viewer查。
即使原来title是乱码,加了文件名之后至少你能看到文件名 ...
不折腾了,按照id3来分类费力不讨好,直接把add_song函数改掉,假设你的歌
路径是 artist/album/song.mp3,直接写
bn = os.path.basename(path)
dn = os.path.dirname(path)
dnsp = dn.split('/')
if len(dnsp) < 2:
dnsp.insert(0, 'UNKNOWN')
if len(dnsp) < 2:
dnsp.insert(0, 'UNKNOWN')
title = ''+dn
artist = dnsp[-2]
album = dnsp[-1]
你也可以用更复杂的规则,呵呵。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。