小度路由madplay和mpd本地音乐播放器
——Author:qinfan?2014.9.3
1).?usb聲卡驅(qū)動
?Kernel?modules??--->?Sound?Support??--->?<*>?kmod-usb-audio
Utilities??--->?<*>?alsa-utils
2).?添加輸入設(shè)備
??Kernel?modules??--->?Input?modules??--->?<*>kmod-input-evdev......................................?Input?event?device
3).?添加USB相關(guān)支持
Kernel?modules?—>?USB?Support?—>?<*>?kmod-usb-core.??##默認(rèn)已經(jīng)選了
Kernel?modules?—>?USB?Support?—>?<*>?kmod-usb-ohci.??##默認(rèn)已選?old?usb1.0
Kernel?modules?—>?USB?Support?—>?<*>?kmod-usb-uhci.??##?usb1.1
Kernel?modules?—>?USB?Support?—>?<*>?kmod-usb-storage.
Kernel?modules?—>?USB?Support?—>?<*>?kmod-usb-storage-extras.
Kernel?modules?—>?USB?Support?—>?<*>?kmod-usb2.??##默認(rèn)已經(jīng)選了?usb2.0
4).?添加SCSI支持
Kernel?modules?—>?Block?Devices?—>?<*>kmod-scsi-core??##默認(rèn)已經(jīng)選了?usb3.0?
5).?添加USB掛載
Base?system?—>?<*>block-mount
6).?添加自動掛載工具
Utilities?—>?Filesystem?—>?<*>?badblocks
7).?添加文件系統(tǒng)支持
Kernel?modules?—>?Filesystems?—>?<*>?kmod-fs-ext4?(移動硬盤EXT4格式選擇)
Kernel?modules?—>?Filesystems?—>?<*>?kmod-fs-vfat(FAT16?/?FAT32?格式?選擇)
Kernel?modules?—>?Filesystems?—>?<*>?kmod-fs-ntfs?(NTFS?格式?選擇)
8).?添加UTF8編碼,CP437編碼,ISO8859-1編碼,CP936編碼
Kernel?modules?—>?Native?Language?Support?—>?<*>?kmod-nls-cp437
Kernel?modules?—>?Native?Language?Support?—>?<*>?kmod-nls-iso8859-1
Kernel?modules?—>?Native?Language?Support?—>?<*>?kmod-nls-utf8
make?kernel_menuconfig
File?systems??--->?<M>?Native?language?support??--->?
??<M>???Codepage?437?(United?States,?Canada)?
??<M>???Simplified?Chinese?charset?(CP936,?GB2312)
保存退出
在package\kernel\linux\modules\nls.mk中參考?nls.mk?的?nls-437添加如下的內(nèi)容(使用find ./ -name nls.mk或者grep找文件)
define KernelPackage/nls-cp936SUBMENU:=Native Language SupportTITLE:=Simplified Chinese charset (CP936, GB2312)KCONFIG:=CONFIG_NLS_CODEPAGE_936FILES:=$(LINUX_DIR)/fs/nls/nls_cp936.koAUTOLOAD:=$(call AutoLoad,25,nls_cp936)$(call AddDepends/nls) endefdefine KernelPackage/nls-cp936/descriptionKernel module for NLS Codepage 936 (CP936, GB2312) endef$(eval $(call KernelPackage,nls-cp936))在這之后就會在同樣的模塊下有cp936的選項(xiàng),選擇編譯進(jìn)內(nèi)核(據(jù)說能這是支持中文的字庫,但是我這里沒有什么反應(yīng))
Kernel?modules?—>?Native?Language?Support?—>?<*>?kmod-nls-cp936
9).其他
Utilities??--->?disc?--->?<*>?fdisk....................................?manipulate?disk?partition?table##fdisk分區(qū)工具
Utilities??--->?<*>?usbutils...................................?USB?devices?listing?utilities
Utilities??--->?Filesystem?—>?<*>?ntfs-3g....................................?Stable?Read/Write?NTFS?Driver
退出保存
說明:板子升級固件之后,用一個(gè)HUB插上USB聲卡和U盤,在/dev/目錄下看到?dsp、audio、mixer?文件,則說明已經(jīng)驅(qū)動添加成功,有sda、sda1說明U盤已經(jīng)加載成功
10).?添加播放器(播放器有兩個(gè)可選)
【madplay】
Sound ---><*>?madplay.................................?MPEG?audio?player?in?fixed?point
Libraries??--->?<*>?libiconv
Libraries??--->??-*-?libmad.............?An?high-quality?MPEG?audio?decoding?library?##默認(rèn)已選
Madplay簡單使用方法如下:
madplay?1.mp3?2.mp3 ?//1.mp3?2.mp3加入列表,保證下一曲可用
-v??獲取播放時(shí)間?????//實(shí)時(shí)顯示播放時(shí)間?eg:?madpaly?-v?***.mp3
-q??不存在任何打印,但現(xiàn)實(shí)警告??//快捷鍵會失效。
-Q??不存在任何打印
--downsample??只采用一半數(shù)據(jù)
-i??忽略CRC校驗(yàn)錯誤
-o?PATH/xx.wav?可以用來轉(zhuǎn)碼,將mp3轉(zhuǎn)為wav?//轉(zhuǎn)化之后是亂的。
??也可以是其他格式,見說明;.raw??表示是元素pcm,.hex等
-a?開啟衰減音量,增加音量,衰減系統(tǒng)為-175~+18?(可以通過鍵盤+?—調(diào)整音量,有延時(shí))
-A?同-a?//在實(shí)際板上發(fā)現(xiàn),效果出來的很慢。
-1?-2?-m?-S?分別指左聲道,右聲道,雙聲道,立體聲
-s??用于seek播放?如:0:1:20:11?,seek到1小時(shí),2分鐘,11秒時(shí)開始播放?//也可以直接寫上秒數(shù),比如?mad?play?-s?40?***.mp3
-t??用于播放時(shí)間現(xiàn)在??0:1:20:11?,播放到1小時(shí),2分鐘,11秒時(shí)就停止
-z??用于隨機(jī)播放列表
-r,?--repeat[=MAX]???循環(huán)播放無限次或Max次?
????--tty-control????????????enable?keyboard?controls??默認(rèn)是使能熱鍵
????--no-tty-control?????????disable?keyboard?controls
?-T,?只顯示文件ID3
?-V,?madplay?版本
熱鍵使用
下一首歌曲?f?
上一首歌曲??b
退出:q,?Q
獲取播放狀態(tài)信息:?i???
調(diào)節(jié)音量:?-?+?_?=
暫停恢復(fù):p
停止:s
【mpd】
添加mpd-full播放器
?Libraries??---><*>?libffmpeg-full...................................?FFmpeg?libraries?(full)
?Libraries??---><*>?libffmpeg-mini...................................?FFmpeg?libraries?(mini)#可用
Multimedia??--->?<?*>?ffmpeg....................................................?FFmpeg?program#添加之后固件過大
##在以上三項(xiàng)中,必須選中至少一項(xiàng)才有mpd-full選項(xiàng)
Sound?---><?*>?mpd-full......................................?Music?Player?Daemon?(full)
添加mpd-mini,不依賴FFmpeg
Sound?---><*>?mpd-mini......................................?Music?Player?Daemon?(mini)#播放器
Sound?--->?<*>?mpc...................................?Music?Player?Daemon?Console?Client#控制器可不選
注:mpd-full支持mp3,mms網(wǎng)絡(luò)電臺,http流媒體播放,但是需要ffmpeg的支持
mpd-mini只支持MP3(我是選擇的mpd-mini)
在板子上的配置/etc/mpd.conf(可以先參考原配置說明,備份,echo?>?/etc/mpd.conf,用vi添加如下內(nèi)容)
說明:/mnt/sda1/為U盤自動掛載的目錄,后面的目錄都是在U盤中自己手動創(chuàng)建的
audio_output{ }為輸出配置,根據(jù)自己板子在/dev/下面的設(shè)備不同而定
music_directory "/mnt/sda1/music" playlist_directory "/mnt/sda1/.mpd/playlists" db_file "/mnt/sda1/.mpd/database" log_file "/mnt/sda1/.mpd/log" pid_file "/var/run/pid" #state_file "/mnt/sda1/.mpd/state" sticker_file "/mnt/sda1/.mpd/sticker.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 "software"mixer_device "/dev/mixer"mixer_control "PCM" }audio_buffer_size "2048" buffer_before_play "100%" 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"在添加mpd后在板子上啟動該服務(wù)?/etc/init.d/mpd?start,啟動該服務(wù)之后會自動調(diào)用mpd進(jìn)程,有些教程里面還要手動啟動mpd是錯誤的,如果執(zhí)行mpd報(bào)錯
socket:?Failed?to?bind?to?'0.0.0.0:6600':?Address?already?in?use
如果是這樣的錯就換一個(gè)端口就可以了,如換成6602什么的,但是這樣操作的話本身就是錯誤的,我只是對自己犯的錯做一下記錄(使用netstat -nl查看端口信息)。
設(shè)置為開機(jī)啟動服務(wù)/etc/init.d/mpd?enable
有了該服務(wù)才能保證手機(jī)終端能夠連接板子進(jìn)行控制,在這個(gè)服務(wù)成功執(zhí)行后,會有一個(gè)后臺服務(wù)進(jìn)程
?
11).安裝和使用MPDroid
在Android應(yīng)用市場區(qū)下載MPDroid的app,可惜沒找到,這是我從別人那里拿過來的
http://pan.baidu.com/s/1qWlZlec(百度網(wǎng)盤下載app)(下面為參考教程)
http://www.leiphone.com/news/201406/diy-a-smart-router-topic-androidbox.html
? ??? ?? ?? ?? ?? ?
打開MPDroid會自動連接板子,連接不上會有提示彈出,點(diǎn)擊【setting】
- add?增加到當(dāng)前播放列表add?and?replace?增加到當(dāng)前播放列表并且替換掉列表中其他的
- add,?replace?and?play?增加到當(dāng)前播放列表,并且替換掉其他的,并且立即播放
- add?and?play?增加播放
- add?to?playlist?增加到一個(gè)列表文件(列表文件,跟當(dāng)前播放列表不是一個(gè)意思,列表文件表示存在路由器上的)
? ? ? ? 4. ?操作完成之后,退回到當(dāng)前播放的界面上,如上圖。
移植之后存在的問題說明及解決辦法:
1.在播放的音樂文件中出現(xiàn)過亂碼,開始以為是不支持中文,換了歌曲就沒問題了;
2.最開始播放每一首歌曲的開始5秒內(nèi)會出現(xiàn)頻繁的卡頓,這是因?yàn)樵谠O(shè)置【buffer_before_play "100%"】這個(gè)選項(xiàng)的時(shí)候沒有調(diào)成100%的加載;
3.手機(jī)上不能控制音量大小,修改【mixer_type "software"】把這個(gè)控制器由hardware改為software;
4.調(diào)節(jié)音量之后,大約7秒后才能在音響中有效果,沒辦法;
5.添加了新的歌曲不能自動刷新播放列表,需要手動刪除/etc/sda1/.mpd/log datebase這些文件,重啟之后才能加載新增的歌曲,就算添加了【auto_update "yes"】也沒解決;
6.在設(shè)置【max_connections "4"】選項(xiàng)時(shí),數(shù)值要大于1,不能填寫1,否則手機(jī)連不上的,可能還有mpc要用一個(gè)連接;
7.使用MPDroid的時(shí)候,需要在【File】項(xiàng)中一首歌一首歌的添加到播放列表,過一會兒在【Playlist】下才有你新建的播放列表,在播放列表中點(diǎn)擊某一首歌不會馬上播放,會添加到播放隊(duì)列中,回到正在播放頁面,右滑會有播放隊(duì)列,在播放隊(duì)列中點(diǎn)擊某一首歌才能直接播放;
總結(jié)
以上是生活随笔為你收集整理的小度路由madplay和mpd本地音乐播放器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 部署LNMP动态网站及网站架构变迁
- 下一篇: MotioninJoy win10下装载