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