Xupeng's blog

Oct 30, 2006 - 3 minute read - Comments

使用指南:好用的播放器mpd

使用指南:好用的播放器mpd
作者:Xupeng Yun <recordus@gmail.com>

mpd是目前我最喜欢的linux环境下的播放器,它跟常见的大多数播放器都很不同,比如它是c/s架构,mpd会作为一个守护进程运行在后台,通过各种各样的client软件来控制播放动作、播放列表等,从一开始使用我便喜欢上了这种方式。下面介绍一下它的使用方法和一些常见问题的解决方法。

一、安装
    我推荐使用最新的0.12.1版,因为我曾使用过0.11.5版,它对某些歌曲的长度识别有问题,而在最新的0.12.1中很正常,以下文字都是基于0.12.1版的。
    如果你跟我一样使用gentoo linux,那么你把portage更新到最新后emerge mpd就可以了:
    emerge --sync
    emerge mpd
    使用其他的发行版的用户可以检查一下软件仓库中是否已有mpd,比如debian/ubuntu用户可以:
    apt-get install mpd
    arch用户可以:
    pacman -S mpd
    如果你使用的发行版还没有提供0.12.1版的二进制包,你可以从mpd官方网站(http://www.musicpd.org/files.shtml)下载源代码进行编译安装。
    
    使用tar命令解开源代码包后进入源码目录:
    tar xf mpd-0.12.1.tar.gz
    cd mpd-0.12.1
    编译安装:
    ./configure --prefix=/usr
    make
    make install

二、mpd的配置
    mpd的系统级配置文件是/etc/mpd.conf,配置方法参见该文件,常用的配置选项有如下几个:
    user 指定用来运行mpd的用户,建议使用默认的mpd用户
    music_directory 指定存放mp3文件的目录,确保user指定的用户对该目录及其子目录、文件有读写权限。
    filesystem_charset 要和你系统使用的locale一致,比如我的:
    aiyi@devr ~ $ locale
    LANG=en_US.utf8
    LC_CTYPE=zh_CN.utf8
    LC_NUMERIC="en_US.utf8"
    LC_TIME="en_US.utf8"
    LC_COLLATE="en_US.utf8"
    LC_MONETARY="en_US.utf8"
    LC_MESSAGES="en_US.utf8"
    LC_PAPER="en_US.utf8"
    LC_NAME="en_US.utf8"
    LC_ADDRESS="en_US.utf8"
    LC_TELEPHONE="en_US.utf8"
    LC_MEASUREMENT="en_US.utf8"
    LC_IDENTIFICATION="en_US.utf8"
    LC_ALL=

    因此我就设置该选项为"UTF-8"
    id3v1_encoding 指定mp3文件id3v1的编码,通常指定为"GBK"

    后两项的设置很重要,它关系到你的歌曲信息是否能够正确显示。

    对mpd配置完毕后要创建歌曲数据库,使用命令:
    mpd --create-db
三、mpd的使用
    启动mpd:
    一般安装mpd时会安装一个启动脚本,比如mpd在gentoo下安装的启动脚本为/etc/init.d/mpd。
    /etc/init.d/mpd start就启动了mpd
    mpd没有安装该脚本也无妨,直接运行mpd就可以了。

四、客户端软件的使用:
    我比较常用的客户端软件是mpc和gmpc,这些软件的安装都很简单,自行解决吧:)
    mpc的常用方式:
    mpc listall 可以列出所有的歌曲
    mpc search filename 可以按文件名查找
    mpc search artist 可以按歌手查找
    mpc search title 可以按歌曲名查找
    mpc add 添加歌曲到播放列表
    mpc listall|mpc add 可以把所有歌曲都添加到当前的播放列表
    mpc playlist 查看当前播放列表
    mpc play 播放
    mpc play 18 播放列表中第18首
    mpc pause 暂停
    mpc stop 停止
    mpc 查看当前播放歌曲的信息
    mpc的更多选项可以看mpc的帮助。

    gmpc是图形化的客户端,使用更加简单,就不废话了。

五、常见问题
    1、我的播放列表怎么有很多乱码?
    这个……要检查一下上面mpd的配置一节说过的两个选项:
    filesystem_charset
    id3v1_encoding
    看是否设置正确
    2、我确认配置没问题,还是乱码。
    这个可能是0.12.1新引入的问题,如果你的mp3文件有id3v2信息,那mpd会优先读取它而不管id3v1。
    解决方法:删除id3v2信息,再确认id3v1是否正确
    3、怎么删除id3v2信息?
    我推荐使用id3v2这个命令行软件:id3v2 -d mp3file
    4、能不能显示歌词?
    偶目前在写一个小程序,用与mpd环境下的歌词显示,基本上完成了,稍候放出。
    5、其他的问题
    我目前还没有遇到其他问题,如果你遇到了其他的问题请使用google,同时也欢迎和我联系:recordus at gmail.com