小度路由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). 添加文件系统支持
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分区工具
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 不存在任何打印,但现实警告 //快捷键会失效。
-Q 不存在任何打印
--downsample 只采用一半数据
-i 忽略CRC校验错误
-o PATH/xx.wav 可以用来转码,将mp3转为wav //转化之后是乱的。
也可以是其他格式,见说明;.raw 表示是元素pcm,.hex等
-a 开启衰减音量,增加音量,衰减系统为-175~+18 (可以通过键盘+ —调整音量,有延时)
-A 同-a //在实际板上发现,效果出来的很慢。
-1 -2 -m -S 分别指左声道,右声道,双声道,立体声
-s 用于seek播放 如:0:1:20:11 ,seek到1小时,2分钟,11秒时开始播放 //也可以直接写上秒数,比如 mad play -s 40 ***.mp3
-t 用于播放时间现在 0:1:20:11 ,播放到1小时,2分钟,11秒时就停止
-z 用于随机播放列表
-r, --repeat[=MAX] 循环播放无限次或Max次
--tty-control enable keyboard controls 默认是使能热键
--no-tty-control disable keyboard controls
-T, 只显示文件ID3
-V, madplay 版本
热键使用
下一首歌曲 f
上一首歌曲 b
退出:q, Q
获取播放状态信息: i ?
调节音量: - + _ =
暂停恢复: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盘中自己手动创建的
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是错误的,如果执行mpd报错
socket: Failed to bind to '0.0.0.0:6600': Address already in use
如果是这样的错就换一个端口就可以了,如换成6602什么的,但是这样操作的话本身就是错误的,我只是对自己犯的错做一下记录(使用netstat -nl查看端口信息)。
设置为开机启动服务/etc/init.d/mpd enable
有了该服务才能保证手机终端能够连接板子进行控制,在这个服务成功执行后,会有一个后台服务进程
11).安装和使用MPDroid
在Android应用市场区下载MPDroid的app,可惜没找到,这是我从别人那里拿过来的
http://pan.baidu.com/s/1qWlZlec(百度网盘下载app)(下面为参考教程)
http://www.leiphone.com/news/201406/diy-a-smart-router-topic-androidbox.html
打开MPDroid会自动连接板子,连接不上会有提示弹出,点击【setting】
- 选择【Default connection settings】(不要用【WLAN based connection】设置之后还是连不上)
- 填写【Host】板子的IP地址,【port】mpd.conf里的port端口值,其他项默认
- 返回到主页,进到【file】项,看有没有获取到文件列表,如果没有列表就再多等等,这个app不怎么好用,如果获取到了文件列表,长按一个文件名,会有下面的选项弹出来
- add 增加到当前播放列表add and replace 增加到当前播放列表并且替换掉列表中其他的
- add, replace and play 增加到当前播放列表,并且替换掉其他的,并且立即播放
- add and play 增加播放
- add to playlist 增加到一个列表文件(列表文件,跟当前播放列表不是一个意思,列表文件表示存在路由器上的)
4. 操作完成之后,退回到当前播放的界面上,如上图。
移植之后存在的问题说明及解决办法:
1.在播放的音乐文件中出现过乱码,开始以为是不支持中文,换了歌曲就没问题了;
2.最开始播放每一首歌曲的开始5秒内会出现频繁的卡顿,这是因为在设置【buffer_before_play "100%"】这个选项的时候没有调成100%的加载;
3.手机上不能控制音量大小,修改【mixer_type "software"】把这个控制器由hardware改为software;
4.调节音量之后,大约7秒后才能在音响中有效果,没办法;
5.添加了新的歌曲不能自动刷新播放列表,需要手动删除/etc/sda1/.mpd/log datebase这些文件,重启之后才能加载新增的歌曲,就算添加了【auto_update "yes"】也没解决;
6.在设置【max_connections "4"】选项时,数值要大于1,不能填写1,否则手机连不上的,可能还有mpc要用一个连接;
7.使用MPDroid的时候,需要在【File】项中一首歌一首歌的添加到播放列表,过一会儿在【Playlist】下才有你新建的播放列表,在播放列表中点击某一首歌不会马上播放,会添加到播放队列中,回到正在播放页面,右滑会有播放队列,在播放队列中点击某一首歌才能直接播放;
小度路由madplay和mpd本地音乐播放器相关推荐
- [HTML5]简单网页本地音乐播放器
既然HTML5提出与本地交互方便,就想写个HTML5的本地音乐播放器.一开始问题主要集中在怎么读取本地文件路径,我想肯定可以用JS实现去操作本地文件(因为node.js很容易实现读取本地文件,但是原生 ...
- 我的音乐(Musicoco)- 本地音乐播放器开发总结
开源一个功能相对齐全的本地音乐播放器 简述 从五月末就开始利用空余时间开发这款 app ,不知不觉三个月过去了. App 名称:我的音乐,我给取了个别名:Musicoco. Android 手机本地音 ...
- 炫 音乐可视化 html5 在线,HTML5打造的炫酷本地音乐播放器-喵喵Player
将之前捣腾的音乐频谱效果加上一个播放列表就成了现在的喵喵播放器(Meow meow Player,额知道这名字很二很装萌~),全HTML5打造的网页程序,可本地运行也可以挂服务器上用. 在线Demo及 ...
- python 本地音乐播放器制作过程
制作这个播放器的目的是为了将下载下来的mp3文件进行随机或是顺序的播放.选择需要播放的音乐的路径,选择播放方式,经过测试可以完美的播放本地音乐. [阅读全文] 在开始之前介绍一个免费下载mp3音乐的网 ...
- 利用PyQt5制作本地音乐播放器
介绍 本文是对之前的音乐播放器的一些改进和功能实现.只写了有变化的部分,具体部分请看上一篇博客. [利用PyQt5和QSS制作本地音乐播放器(初稿)](https://blog.csdn.net/we ...
- 基于 Qt5 ( C++ ) 开发的一个小巧精美的本地音乐播放器
LightMusicPlayer --南京大学2019秋季学期 "高级程序设计" 课程设计三 基于Qt5开发的一个小巧精美的本地音乐播放器 代码注释详细,适合作为一个用于入门的Qt ...
- 一款简单的本地音乐播放器,界面美观、包括主题切换、歌单管理等等
MeetMusic 项目地址:lijunyandev/MeetMusic 简介:一款简单的本地音乐播放器,界面美观.包括主题切换.歌单管理等等 音乐-播放器-主题切换- App 效果图 ...
- 简易的本地音乐播放器 适用于Java初学者
简易的本地音乐播放器 适用于Java初学者 我知道肯定会有人说都1202年了怎么还有人在用AudioClip,没有别的原因,因为我也刚学Java,刚好看到一个这样的教程就刚好写了一个这样的播放器. 我 ...
- 绝对零度试验机的创造战记:2.小型HTML5本地音乐播放器
绝对零度试验机的创造战记:2.小型HTML5本地音乐播放器 二前记: 接触HTML5和Javascript已经有三四个月了,一直都是半桶水程度,当然,想达到满水的程度还真不是那么简单. 之前买过一本H ...
最新文章
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十二:串口模块① — 发送
- ELK/EFK — 安装部署(主机安装)
- 前端怎样在浏览器上调整样式找到style来源
- codelite14中文语言包_CodeLite(C++跨平台开发环境) V 11.0.1 中文版
- Docker 命令详解(run篇)
- ios弧形进度条_IOS贝塞尔曲线圆形进度条和加载动画-阿里云开发者社区
- node.js 模块_如何创建Node JS可重用模块
- 【首发】'k4' 宏病毒专杀 原创新型excel宏病毒专杀工具
- 华为笔试题大全(史上最齐全)
- 华为ensp静态路由配置
- PS CS5制作1寸照片
- 永磁同步电机 MTPA 超前角弱磁 SVPWM过调制
- android设置标题颜色设置颜色,设置标题背景颜色
- [论文笔记|LIC-Fusion]LIC-Fusion: LiDAR-Inertial-Camera Odometry
- vs2015 C# 控制台简单SpringDEMO
- JAVA实验七 图形用户界面的设计与实现
- error: ‘stol’ was not declared in this scope
- unity中计算不规则模型的体积与表面积—三角面片与四面体
- 使用internal(com.android.internal)和hidden(@hide)APIs
- BZOJ1677: [Usaco2005 Jan]Sumsets 求和