前言
客户购买多台UNO-2184,使用fedora23系统进行视频监控,视频监控的同时,也要同步采集现场画面的声音,原来系统采用的是fedora 14,之前是通过操作/dev/bsp,对声卡进行操作,由于内核的升级不再支持此方式,新的内核开始使用alsa驱动方式,因此需要测试该功能,协助客户完成程序升级。
解决办法如下:
1.下载相关头文件的包,如果不下载编译程序会提示找不到asoundlib.h这个头文件
fedora 23下载
yum install alsa-lib-dev
其他系统可能需要下载
apt-get install bliasound2-dev
2.下载测试程序
yum install alsa-utils*
系统自动更新后,输入aplay -h 看看有没有提示程序找不到
3.在UNO-2184上MIC-in(红色端口)端口插入麦克风,在line-out(绿色端口)插入音响或耳机
4.查看声卡状态
使用arecord -l,查看声卡的录音设备
如下图,录音设备是card 0 ,device 0
使用aplay -l,查看声卡的播放设备
如下图,line-out的播放设备是card 0 ,device 0
其他device3,device7是在HDMI通道上,我们这里没用到。
5.使用arecord进行录音操作
这里要解释下具体参数的含义
arecord -D hw:0,0 -f cd -d 5 /home/mio/www.wav
-D表示使用哪个声卡进行录音,通过arecord -l读出来设备,是0,0,具体表示就是hw:0,0
-f cd,这个表示用CD音质进行录音,上面的图的意思显示是用16bit 44.1kHZ 进行采集
-d 5 表示录音操作5s后结束
/home/mio/www.wav ,表示录音存放的位置
综合起来,就是arecord 用card 0 ,device 0这个设备按照16bit ,44.1kHZ 进行录音采集,然后录音5s后,把www.wav这个音频文件存放在/home/mio目录下。
6.使用aplay进行播放操作
这里要解释下具体参数的含义
aplay -D hw:0,0 -f cd /home/mio/www.wav
综合起来,就是用card 0 ,device 0这个设备按照16bit ,44.1kHZ 这个频率播放/home/mio/www.wav这个音频文件。
7.循环录循环播放
使用管道命令,也就是二合一命令
arecord -D hw:0,0 -f cd |aplay –D hw0:0 -f cd
8.使用alsamixer调节音量
使用上下键盘进行音量的调节。
9.使用API函数编程
参考官方文档
http://users.suse.com/~mana/alsa090_howto.html#sect03
原文:https://www.cnblogs.com/cute/p/11389068.html