13
本文作者: 孫冰 | 2014-06-16 21:48 |
我們繼續(xù)網(wǎng)絡(luò)音箱的專題,這章將介紹安卓系統(tǒng)下的MP標(biāo)準(zhǔn)軟件控制路由器播放音樂(lè)。
MP全稱為音樂(lè)播放進(jìn)程(Music Player Daemon)。它是一個(gè)可定制化功能強(qiáng)大的服務(wù)端播放音樂(lè)軟件,通過(guò)其自身的插件和庫(kù)系統(tǒng)即可完成通過(guò)網(wǎng)絡(luò)控制播放音樂(lè)。MP具備一個(gè)自己的控制管理協(xié)議,這些協(xié)議是基于TCP協(xié)議進(jìn)行傳輸?shù)???蛻舳诉B接到服務(wù)器上控制服務(wù)端進(jìn)行處理。MPD表示服務(wù)端,MPC表示客戶端。
MP是一個(gè)完全開(kāi)放源代碼的整體系統(tǒng),因此有很多操作系統(tǒng)下的客戶端,在安卓手機(jī)中即可使用MPDroid這個(gè)軟件控制服務(wù)端播放,而如果您需要開(kāi)發(fā)自己的產(chǎn)品,完全可以參考官方的資料自己開(kāi)發(fā)一個(gè)控制程序,甚至給服務(wù)端增加新的功能。
使用MP的好處是,只要你的手機(jī)連接到家里的路由器上既可以控制播放音樂(lè),而手機(jī)還隨身攜帶,這樣不影響你掃地啊、煮飯啊等等工作是不是。
MP的官方網(wǎng)站為http://www.musicpd.org/
首先確保你12章的測(cè)試和操作OK聲卡已經(jīng)正常工作了。
然后開(kāi)始安裝軟件包,我們教程中使用的是mpd-mini該軟件包是mpd的OpenWRT精簡(jiǎn)版完成了主要的功能,而且也比較節(jié)省CPU和內(nèi)存。
root@SmartRouter:/# opkg update
root@SmartRouter:/# opkg install mpd-mini
第一步: 創(chuàng)建必須的文件夾,在這一步,我們選擇使用extdisk作為存儲(chǔ)位置,這樣的好處是上傳到系統(tǒng)的文件可以通過(guò)Windows文件共享等方式實(shí)現(xiàn)。當(dāng)然你也可以開(kāi)發(fā)一個(gè)新的客戶端軟件實(shí)現(xiàn)將手機(jī)的音樂(lè)同步到服務(wù)端上。
創(chuàng)建音樂(lè)文件存放位置
root@SmartRouter:/# mkdir -p /mnt/extdisk/music
root@SmartRouter:/# chmod -R 777 /mnt/extdisk/music
創(chuàng)建播放列表存放位置
root@SmartRouter:/# mkdir -p /mnt/extdisk/music_playlist
root@SmartRouter:/# chmod -R 777 /mnt/extdisk/music_playlist
創(chuàng)建播放器數(shù)據(jù)位置
root@SmartRouter:/# mkdir -p /mnt/extdisk/music_bin
root@SmartRouter:/# chmod -R 755 /mnt/extdisk/music_bin
第二步: 創(chuàng)建初始化的文件,這些文件都是mpd所需要使用的
root@SmartRouter:/# touch /mnt/extdisk/music_bin/mpd.db
root@SmartRouter:/# touch /mnt/extdisk/music_bin/mpd.log
root@SmartRouter:/# touch /mnt/extdisk/music_bin/mpd.error
root@SmartRouter:/# #touch /mnt/extdisk/music_bin/mpd.pid
root@SmartRouter:/# touch /mnt/extdisk/music_bin/mpdstate
root@SmartRouter:/# touch /mnt/extdisk/music_bin/mpd.sql
編寫(xiě)配置文件,MPD目前沒(méi)有基于UCI格式的配置文件,需要手工創(chuàng)建一個(gè)/etc/mpd.conf文件。
mpd.conf的配置文件涉及到的參數(shù)有很多,這里我們一一說(shuō)明下:
MPD的基本運(yùn)行參數(shù):
參數(shù) 值 說(shuō)明
music_directory 路徑 音樂(lè)文件的存放文件夾位置
playlist_directory 路徑 音樂(lè)播放列表的存放位置,播放列表可以是在設(shè)備上創(chuàng)建也可以是通過(guò)MPDroid客戶端軟件創(chuàng)建
db_file 文件路徑 MPD的數(shù)據(jù)庫(kù)文件路徑
log_file 文件路徑 MPD的日志文件路徑
pid_file 文件路徑 MPD的進(jìn)程號(hào)文件路徑
state_file 文件路徑 MPD的狀態(tài)文件路徑
sticker_file 文件路徑 MPD管理音樂(lè)動(dòng)態(tài)信息的文件路徑
user 帳號(hào) MPD運(yùn)行時(shí)的Linux身份帳號(hào),默認(rèn)openwrt下只有root
group 分組 MPD運(yùn)行時(shí)的Linux身份帳號(hào),默認(rèn)openwrt下只有root
bind_to_address IP地址 MPD監(jiān)聽(tīng)的IP地址,0.0.0.0表示全部設(shè)備的IP
port 端口 MPD的監(jiān)聽(tīng)端口
log_level 字符串 日志信息輸出的級(jí)別,可以填寫(xiě)default,secure,verbose其中verbose表示顯示全部日志,信息很多
auto_update 字符串 當(dāng)music_directory中的音樂(lè)文件有變化時(shí)候自動(dòng)更新MPD的數(shù)據(jù)庫(kù)。可以填寫(xiě)yes或no
auto_update_depth 數(shù)字 自動(dòng)更新的時(shí)候?qū)ξ募A深度的檢測(cè),隨便寫(xiě)一個(gè)值吧只要是數(shù)字就可以。
audio_buffer_size 數(shù)字 音頻播放時(shí)的緩存大小,默認(rèn)值為2048
buffer_before_play 百分比 音頻播放之前的緩存比例。默認(rèn)值為10%
connection_timeout 數(shù)字 客戶端連接超時(shí),單位秒,默認(rèn)值為60
max_connections 數(shù)字 客戶端最大連接數(shù)量,默認(rèn)值為10
max_playlist_length 數(shù)字 播放列表文件允許的最大長(zhǎng)度,這個(gè)不要弄的太大搞死系統(tǒng)了哦。
max_command_list_size 數(shù)字 最大list指令尺寸,默認(rèn)值為2048
max_output_buffer_size 數(shù)字 最大輸出緩存,默認(rèn)值為8192
filesystem_charset 字符串 文件系統(tǒng)的編碼,如果你的文件是通過(guò)windows網(wǎng)絡(luò)共享上載的這里填寫(xiě)UTF-8即可。
id3v1_encoding 字符串 歌曲的ID3標(biāo)簽名稱編碼,默認(rèn)為"ISO-8859-1"
MPD的輸出設(shè)備output,該設(shè)備配置用來(lái)實(shí)現(xiàn)對(duì)聲卡的支持,格式如下:
audio_output {
參數(shù)內(nèi)容
}
其中的參數(shù)內(nèi)容在我們的開(kāi)發(fā)板上用的上的是對(duì)聲卡配置部分:
參數(shù) 值 說(shuō)明
type 字符串 輸出類型,可選值為: oss,alsa,pulse,pipe,在我們的開(kāi)發(fā)板上為oss
name 字符串 設(shè)備顯示名稱,在MPDroid客戶端軟件上可以顯示出來(lái)。
device 設(shè)備路徑 oss的設(shè)備路徑,默認(rèn)填/dev/sdp
format 字符串 播放格式,默認(rèn)填寫(xiě)為44100:16:2即可,表示44Khz,16位,雙聲道
mixer_type 字符串 混音器類型,我們的開(kāi)發(fā)板默認(rèn)填寫(xiě)"hardware"
mixer_device 設(shè)備路徑 混音器設(shè)備路徑,我們的開(kāi)發(fā)板默認(rèn)填寫(xiě)"/dev/mixer"
mixer_control 字符串 混音器的控制,我們的開(kāi)發(fā)板默認(rèn)填寫(xiě)"PCM"
在這里,我們舉例下配置。
使用VI編輯器創(chuàng)建/etc/mpd.conf配置文件內(nèi)容如下:
music_directory "/mnt/extdisk/music"
playlist_directory "/mnt/extdisk/music_playlist"
db_file "/mnt/extdisk/music_bin/mpd.db"
log_file "/mnt/extdisk/music_bin/mpd.log"
pid_file "/var/run/mpd.pid"
state_file "/mnt/extdisk/music_bin/mpdstate"
sticker_file "/mnt/extdisk/music_bin/mpd.sql"
user "root"
group "root"
bind_to_address "0.0.0.0"
port "6600"
log_level "default"
auto_update "yes"
auto_update_depth "8"
audio_output {
type "oss"
name "mycard"
device "/dev/dsp"
format "44100:16:2"
mixer_type "hardware"
mixer_device "/dev/mixer"
mixer_control "PCM"
}
#audio_buffer_size "2048"
buffer_before_play "10%"
connection_timeout "60"
max_connections "4"
max_playlist_length "1024"
max_command_list_size "2048"
max_output_buffer_size "4096"
filesystem_charset "UTF-8"
id3v1_encoding "ISO-8859-1"
第一步: 復(fù)制音樂(lè)
你可以把你喜歡的音樂(lè)以文件夾方式存放在/mnt/extdisk/music中,你可以選擇使用windows文件共享方式復(fù)制音樂(lè)文件到系統(tǒng)上來(lái)。
第二步: 修正MPD服務(wù)的默認(rèn)音量
因?yàn)镸PD服務(wù)的默認(rèn)音量參數(shù)寫(xiě)的有問(wèn)題會(huì)導(dǎo)致音量被放大到100%嚇你一跳,所以需要手工方式修正下。
用VI編輯器編輯/etc/init.d/mpd文件:
找到: [ -x /usr/bin/amixer ] && /usr/bin/amixer set PCM 40%
修改為: [ -x /usr/bin/amixer ] && /usr/bin/amixer set PCM 35%
第三步: 設(shè)置啟動(dòng)服務(wù),如果你需要經(jīng)常聽(tīng)音樂(lè),就要將服務(wù)設(shè)置為自動(dòng)開(kāi)啟,或手工開(kāi)啟。
設(shè)置每次設(shè)備自動(dòng)開(kāi)啟(如果不是總聽(tīng),就不用自動(dòng)拉):
root@SmartRouter:/# /etc/init.d/mpd enable
手工開(kāi)啟一下:
root@SmartRouter:/# /etc/init.d/mpd start
MPDroid是一個(gè)免費(fèi)的安卓系統(tǒng)下客戶端,該客戶端可以實(shí)現(xiàn)大部分播放功能。
第一步: 安裝
進(jìn)入你的安卓市場(chǎng),搜索MPDroid并且下載安裝,如果你的市場(chǎng)中沒(méi)有可以上網(wǎng)上搜索MPDroid下載到手機(jī)中安裝。
第二步: 配置
首次配置首先要你的無(wú)線連接到板子上。打開(kāi)MPDroid軟件后會(huì)顯示要求配置:
a. 選擇WLAN based connection
b. 選擇你當(dāng)前連接上來(lái)的開(kāi)發(fā)板
c. 在Host填寫(xiě)開(kāi)發(fā)板的IP地址
d. 在Port填寫(xiě)MPD的監(jiān)聽(tīng)端口
e. 退出配置返回主界面
第三步: 選擇要播放的音樂(lè)
a. 選擇主界面左下角的音樂(lè)符號(hào),再在屏幕左上角選擇Files顯示可播放音樂(lè)。
b. 屏幕中會(huì)顯示出可播放的音樂(lè)或文件夾,這些都是你上傳到/mnt/extdisk/music下的音樂(lè)文件。
c. 在音樂(lè)文件或文件夾上長(zhǎng)按后會(huì)顯示選項(xiàng):
add 增加到當(dāng)前播放列表
add and replace 增加到當(dāng)前播放列表并且替換掉列表中其他的
add, replace and play 增加到當(dāng)前播放列表,并且替換掉其他的,并且立即播放
add and play 增加播放
add to playlist 增加到一個(gè)列表文件(列表文件,跟當(dāng)前播放列表不是一個(gè)意思,列表文件表示存在路由器上的)
d. 選擇好以后返回主界面,就有音樂(lè)文件了,點(diǎn)擊就可以播放了。還可以調(diào)整音量。
MPDroid是一個(gè)安卓下可用的播放器軟件,MPD的協(xié)議也可以完成很多工作,但是畢竟有不完善的地方,首先MPDroid不具備音樂(lè)同步通能,不能將音樂(lè)同步到服務(wù)器上,其次界面是英文的操作比較復(fù)雜,hoowa期望有識(shí)之士能做一個(gè)更完美的客戶端項(xiàng)目。因此如果有愿意做這方面的朋友,請(qǐng)不要吝嗇,加入我們吧。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。