本帖最后由 shower.xu 于 2014-5-14 14:45 编辑
为了和前面几篇文章组成一个系列,特意把标题前面改为一致。
前面几篇
乱玩BeagleBone1- BeagleBone跑跑系统
乱玩BeagleBone2- BeagleBone建立自己的家庭多媒体服务器
乱玩BeagleBone3- 用SSH远程登录BeagleBone,甩掉串口线
乱玩BeagleBone4-安装ubuntu镜像到内部eMMC
这一篇是第5篇,让我们实现在BeagleBone Black下播放音乐,包括wav无损音乐格式,闲暇之余也可以作为一个无损音乐播放器耍耍了。
一、原理:
我们都知道,
BeagleBone Black板子上不带独立的音频输出,声音可以经由hdmi接口输出到外接设备上,但这样外接设备要求高,很麻烦。另一个办法是AM3359内部的IIS引脚,外接一个支持IIS接口的DAC芯片,这样可以通过软件实现各种范围的码率,据说能支持到24bit/192kHz ,绝对的高端大气上档次的音质,如果后面的滤波和耳放能做好,可以匹敌当前几千的高端播放器,但是这个需要软硬件和系统支持,特别是扩展CAPE的绘制和耳放部分以及电源的设计,算是高难度的活了,这里也搁下不提。
两条路都被堵死了,那怎么办呢?我把眼光瞄到了usb口上。
前一段时间在网上查资料DIY了个usb声卡,支持16bit--44100K,本来准备开源发到坛子DIY区里的,上周有事一直没把资料整理好,这里先试试能用不,可以的话岂不一举两得。
二、usb声卡
USB声卡使用的TI的PCM2912A单芯片方案,外围简单,免驱动,带静音降噪,总之是各种NB.早早的在TI申请了几片,来回做了2次板子,终于成功,效果不错呢。
原理图见这里
板子见这里
第一块是第一次打板的,几个封装画错了。
音质效果不错,感觉比台式和笔记本的稍好些。
三、实现步骤
只有硬件不行,我们还需要在BBB里面安装一个解码器,我们选用的是大名鼎鼎的ffmpeg,开源,强大。
官方地址:http://ffmpeg.org/
下面是安装步骤
1、BeagleBone Black里面解码器安装
联网的前提下执行命令
- sudo apt-get install ffmpeg
复制代码 就这么简单,这就是我喜欢ubuntu的原因。如果有问题注意一下权限。
我这个截图因为之前已安装,没有更新了,所以和你的可能不同。
安装提示完成后,执行下ffmpeg看看是否安装正确。
3、准备歌曲文件
我是用sd卡拷贝的歌曲文件,然后在系统里面枚举,用cp命令拷贝到内部emmc里面去的。
3、确保usb声卡插入usb端口,执行以下命令查看- 显示结果里面会比没有插入之前多出一个/dev/dsp1的设备,就是我们的声卡
复制代码
这就说明声卡被正常识别了。
4、下面就是激动人心的时刻了
执行指令
- sudo su
- ffmpeg -i test.wav -f alsa "default:CARD=1" -re -vol 50
复制代码CARD=1就是我们的声卡。
-vol 50 是音量,范围是0~255
test.mp3文件名要更换为你的实际文件名,我尝试了MP3和wav可以播放,其它扩展名可能需要加载解码库插件,大家可以去尝试。
想终止当前播放可以用CTRL+C操作。
四、后记
本来这一篇应该是摄像头监控的实现的,由于摄像头还没借到,所以先上这个“有声”,下一篇我们就“有色”了。
usb声卡的资料最近会整理出来,预计周末前发到diy板块,大家分享一下。
视频--声音是从耳机录出的,所以很小。