本帖最后由 孙毅 于 2015-11-30 10:39 编辑
恩,又到了小恶魔们碎觉,我等出来嘚瑟的时间了。赶紧的废话少说,直奔主题,今天跟大家一块搞定在Edison上播放声音!让我们的IOT设备更加丰富多彩。
第一步:巧妇难为无米之炊——跟老婆申请budget淘宝一个USB声卡。
恩,遗憾的是——没批!切~咱早有心理准备了。backup的方案就是,使用平时网络会议时使用的USB耳机!
我没有尝试特别多的耳机或者声卡,但我觉得,多半市面上的USB耳机都能搞的定啊。
第二步:升级Edison image,不过也不用特别的新,号称2015-5-15之后的版本就可以了。——“为啥呢……?”身后一个声音“贱贱”的回荡在耳边。好吧,似乎是因为有一个usb-snd-audio的模块被加到的kernel里面。module的真正名字叫‘snd_usb_audio’,但我用lsmod就是看不到,就在我险些刷固件的时候,忽然想起《葵花宝典》里面的一句名言——“即使不攻也能成功”。果断在插上usb耳机之后,看下dmesg,找到这么几句:
- [ 2079.376629] usb 1-1: new full-speed USB device number 2 using dwc3-host
- [ 2079.613759] usb 1-1: New USB device found, idVendor=0b0e, idProduct=0348
- [ 2079.613790] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
- [ 2079.613812] usb 1-1: Product: Jabra UC VOICE 550a MS
- [ 2079.613830] usb 1-1: Manufacturer: Jabra
- [ 2079.613848] usb 1-1: SerialNumber: 000100A1790D
- [ 2079.678550] usb_audio: Warning! Unlikely big volume range (=4096), cval->res is probably wrong.
- [ 2079.678575] usb_audio: [11] FU [Sidetone Playback Volume] ch = 1, val = 0/4096/1<6>[ 2079.841563] input: Jabra Jabra UC VOICE 550a MS as /devices/pci0000:00/0000:00:11.0/dwc3-host.2/usb1/1-1/1-1:1.3/input/input2
- [ 2079.843650] hid-generic 0003:0B0E:0348.0001: input,hiddev0,hidraw0: USB HID v1.00 Device [Jabra Jabra UC VOICE 550a MS] on usb-dwc3-host.2-1/input3
复制代码
好险好险~~呼~~
第三步:安装ALSA工具:alsa-utils
老方法:opkg install alsa-utils
第四步:验证一下我们的声卡是不是正常识别了:
复制代码 然后会得到很多行信息,我们找到有我们耳机品牌信息的行,我的在最后一段
- card 1: dummyaudio [dummy-audio], device 0: 14 []
- Subdevices: 1/1
- Subdevice #0: subdevice #0
- card 1: dummyaudio [dummy-audio], device 1: ((null)) []
- Subdevices: 1/1
- Subdevice #0: subdevice #0
- card 1: dummyaudio [dummy-audio], device 2: ((null)) []
- Subdevices: 1/1
- Subdevice #0: subdevice #0
- card 2: <b>MS </b>[Jabra UC VOICE 550a MS], device 0: USB Audio [USB Audio]
- Subdevices: 1/1
- Subdevice #0: subdevice #0
复制代码
记住最后一段 card2: 后面的 MS,很重要!
第五步:
创建一个配置文件,告诉ALSA tools你想要的默认音频设备是什么复制代码 把下面的行添加到我们新的配置文件里面如下:
- pcm.!default sysdefault:MS
复制代码
注意最后那个冒号后面的MS是我的USB设备,大家需要换成自己的设备名字,就是之前那个card2后面的名字!
第六步:播放音乐!!
使用aplay播放音频:
- aplay /home/root/Alarm01.wav
复制代码
如果看到下面的信息,基本上就播放成功了!
- root@edison:~# aplay /home/root/Alarm01.wav
- Playing WAVE '/home/root/Alarm01.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Stereo
复制代码
如果前面没有正确设置过默认的音频输出设备,这里可以直接选择你usb声卡如下:
- aplay -D hw:2,0 /home/root/Alarm01.wav
复制代码
其中的hw2,0 表示card2,至于0嘛,这里总是零,就对了!
本来写到这里已经差不多了,下面是网上看到的些东东,先记在这里了:
播放mp3: mpg123
录音: arecord
一个很棒的widi关于ALSA的:
http://www.alsa-project.org/main/index.php/Asoundrc
要是有特别的配置,可以参考下。
还有就是发现另外一篇关于Edison音频的帖子,先记在这里,供参考。
http://www.arduino.cn/forum.php? ... B%E9%9F%B3%E9%A2%91
|