修改基于glibc的程序
Ubuntu下面喜欢使用mpd(Music Player Daemon)播放歌曲,由于这是一个C/S的音乐播放程序,一个好用的播放客户端必不可少。
最初使用的是Sonata(用Python语言编写),这个播放客户端界面简洁,功能满足要求,能够修改音乐的标签,但是有一个缺点,对于需要代理访问因特网的用户无法更新专辑封面、歌词等信息。检查充分使用Google,搜索发现Python支持使用系统环境变量http_proxy的代理设置访问因特网,于是自己修改了部分代码(使用urllib2访问因特网的部分),可是测试使用的时候总是不起作用。后来想通过在终端运行看看是否有出错的信息,出人意料竟然能访问因特网了,这个现象也太奇怪了,实在搞不懂是怎么一回事??
接着找到了gimmix,为了编译最新版本安装了一堆包(太惨了,网站上的编译说明和源码包中的还不一致,nxml这个包其实是libnxml,费了很长时间才搞定)。使用中也是无法使用代理,而且没法显示音乐目录下面的专辑封面图片(在windows下面搜集了不少itunes/amazon/allcdcovers的专辑封面),毫不犹豫删除了。
最后看到一篇论坛帖子介绍mpd的客户端,推荐了Sonata和gmpc(Gonme Music Player Client),于是在launchpad找到了开发者自身编译的gmpc包安装到系统中。使用后感觉不错,尤其是支持代理访问因特网。优点如下:

相关信息
最初使用的是Sonata(用Python语言编写),这个播放客户端界面简洁,功能满足要求,能够修改音乐的标签,但是有一个缺点,对于需要代理访问因特网的用户无法更新专辑封面、歌词等信息。检查充分使用Google,搜索发现Python支持使用系统环境变量http_proxy的代理设置访问因特网,于是自己修改了部分代码(使用urllib2访问因特网的部分),可是测试使用的时候总是不起作用。后来想通过在终端运行看看是否有出错的信息,出人意料竟然能访问因特网了,这个现象也太奇怪了,实在搞不懂是怎么一回事??
接着找到了gimmix,为了编译最新版本安装了一堆包(太惨了,网站上的编译说明和源码包中的还不一致,nxml这个包其实是libnxml,费了很长时间才搞定)。使用中也是无法使用代理,而且没法显示音乐目录下面的专辑封面图片(在windows下面搜集了不少itunes/amazon/allcdcovers的专辑封面),毫不犹豫删除了。
最后看到一篇论坛帖子介绍mpd的客户端,推荐了Sonata和gmpc(Gonme Music Player Client),于是在launchpad找到了开发者自身编译的gmpc包安装到系统中。使用后感觉不错,尤其是支持代理访问因特网。优点如下:
- 支持插件,通过插件实现如下功能:搜索本地专辑封面、歌词;获取amazon上的专辑封面;获取last.fm上面的艺术家信息、图片;获取lyricwiki、leoslyric等上面的歌词(纯歌词,不是lrc歌词)等等。
- Metadata Browser功能强大,充分利用插件获取的last.fm的相关信息。
(voorkant|front|cover|large|folder|booklet)因此,我想能不能给一个自定义项用于匹配,在插件处理专辑图片时先用用户自定义的进行匹配,这样即不破坏原插件的功能,又能让插件按照用户习惯选择正确的专辑图片。为插件增加这个功能,用Google搜索了不少关于GTK+界面编程、glibc函数等信息:
- regcomp()、regexec()正则表达式函数的参数说明 regcomp()是把用于匹配的规则编译,是后续匹配更有效;regexec()用于正则表达式的匹配
- GTK入门导引 : 4. 封装物件 界面各项数据
- GTK+ 2.0 教程 - 杂项构件 - 文本输入构件 Text Entries 学习标签的使用
- GTK+ -- 标签(GTKLabel) 学习标签中对文字格式的控制
- GLib Reference Manual - String Utility Functions glib中字符串的操作函数
- GLib Reference Manual - Regular expression syntax

相关信息
- gmpc作者的第三发软件源,目前gmpc版本0.16.1,比ubuntu中的版本高不少,同时包含插件的最新版本
deb http://ppa.launchpad.net/qball-qballcow/ubuntu intrepid main