Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3168059
  • 博文数量: 685
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5303
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-19 14:17
个人简介

文章分类

全部博文(685)

文章存档

2015年(116)

2014年(569)

分类: 嵌入式

2014-10-14 09:56:39

原文地址:

题记:忽闻水上琵琶声,主人忘归客不发。转轴拨弦三两声,未成曲调先有情。

对于大多数年轻的女性来说,她们最关心的是生活和自己的男人。男人应该更多的关系自己身边的女人,人生是苦比乐多的,因此要乐观的面对自己好好的对家人。尤其是IT男们,不要因为只顾自娱自乐的这种自私而忽略了身边人。为什么不为你的女朋友准备一台网络音箱?在她繁忙工作下班回来,可以一边开心的听音乐一边给你烧菜呢?

从这章开始我们将花费一些时间介绍下使用实现网络音箱的功能,这些功能都有一个特点"只需要软件包修改和配置",在不需要接触嵌入式编程的情况下即可实现。"网络音箱"一共有四章,其中包括安卓播放器,播放器,DLNA媒体播放器。

与此相关的存储和电流

这章我们要介绍关于播放了,请调整好你的存储器,如果你只使用系统内部的FLASH作为存储器,那么作为媒体设备显然容量就太小了,所以建议开始启用外部存储器。

电流方面,我们采用的是USB外置设备方式实现的播放,这种情况下对电流要求会增大。在M150的开发板上,如果你接入了外置硬盘那一定要给硬盘提供独立的供电。否则建议使用TF卡。

存储与播放的关系:

存储器类型 优势 缺点 补救
内部SPI FLASH 不用外接设备 容量不够 接个设备
TF卡 供电要求低 写速度慢 凑合能用也可以
USB硬盘 写速度快 供电不足 外接电源

播放实现原理

在M150上实现播放音乐主要依靠这么几点实现的:

  1. 具备USB总线,可以驱动我们x86电脑常用的声卡。
  2. 一大部分普通声卡在Linux下都支持ALSA和OSS两个驱动框架,可以不用自己编译驱动,只需要在内核里启用即可。
  3. OpenWRT下具备了一大批关于音乐播放的软件库,即使本文也只介绍了其中一小部分而已。

声卡驱动产生/dev/下的设备,而播放软件将MP3音乐文件转换成为PCM码流送入驱动,驱动处理后导入声卡芯片中实现音乐播放。

选择声卡和音箱

跟设备首先连接的是声卡,支持标准驱动的声卡芯片非常繁多,而且有很多价格也很便宜。但是在购买的时候很难知道是否支持标准驱动,而卖声卡的也不知道什么芯片的他们也不懂,所以讲芯片没有用,所以hoowa给大家一个这么建议如何选择到可以用的。

而如果你的房间不大,或是并不追求HIFI音质,那么而市面上还有很多带声卡的音箱,便宜的10几块钱,好一点的要100左右也是可以选择的,不过要注意这些音箱的供电问题啊。

如果你是现场购买,那么将你的M150开发板带过去测试一下,这个是最靠谱的;如果你是在淘宝上购买的,那么就问下卖家声卡是否支持“Windows XP即插即用无需驱动”。

所以, 选择一个合适的声卡其实挺重要的。

安装声卡驱动

现在我们开始具体操作了,确保你的开发板连接外网正常。

第一步:首先安装驱动和软件包

root@SmartRouter:/# opkg update
root@SmartRouter:/# opkg install kmod-usb-audio
root@SmartRouter:/# opkg install alsa-utils

第二步:插入声卡。因为在工作状态下插入你的声卡如果供电有问题会导致USB HUB重启,这个时候可能外置磁盘就异常系统崩溃了。

关闭掉设备电源
插入声卡设备
再开启电源

第三步:测试声卡是否识别并且驱动

在没有插入任何外置USB设备的时候,lsusb看起来是这样:

root@SmartRouter:/# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 058f:6254 Alcor Micro Corp. USB Hub
Bus 001 Device 005: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader

当插入USB设备的时候,会多出来一个设备,hoowa的这个声卡看起来是这样:

root@SmartRouter:/# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 058f:6254 Alcor Micro Corp. USB Hub
Bus 001 Device 005: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader
Bus 001 Device 006: ID 19a8:2036 Biforst Technology Inc.

查看声卡的设备驱动符号是否创建,这个标准用来识别声卡是否被驱动:

root@SmartRouter:/# ls /dev/dsp
root@SmartRouter:/# ls /dev/audio
root@SmartRouter:/# ls /dev/mixer

如果以上信息都正确,那么恭喜你安装声卡成功了。

第四步:设置音量

默认音量比较大,可能首次播放会吓到我们。写个默认音量程序吧。

使用vi编辑器编辑/etc/rc.local文件。在exit 0的前面增加这句:amixer set PCM 35%

修改后的rc.local文件内容如下:

2

第五步:重启。设置全都完毕了现在要重启下让第四步的配置生效。

root@SmartRouter:/# reboot

测试播放音乐

第一步:安装一个madplay作为测试播放器

root@SmartRouter:/# update
root@SmartRouter:/# opkg install madplay

第二步:复制一个MP3过来

将你电脑里一个mp3文件更名为test.mp3并且复制到/mnt/extdisk下面。

第三步:测试播放

root@SmartRouter:/# madplay /mnt/extdisk/test.mp3

如果听到音乐说明测试成功,这个时候通过键盘组合键ctrl+c停止测试。

#测试播放
mkdir -p /mnt/extdisk/music
chmod -R 777 /mnt/extdisk/music
root@SmartRouter:/# amixer set PCM 35%

复制以个音乐文件到music下:

root@SmartRouter:/# madplay /mnt/extdisk/music/*.mp3

如果音箱能听到音乐说明测试成功,退出按键盘组合键Ctrl+c停止播放

章节结尾

到这里,声卡和驱动我们就完成了,并且已经测试成功了,下一章我们将介绍使用安卓系统下的一款MPDroid软件实现手机控制播放。到这里,大家还可以自己玩玩,用命令行播放下音乐看看。


阅读(1493) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~