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 listallmpc 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、其他的問題