linux声卡录音和播放(alsa方法)

前言

客户购买多台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

linux声卡录音和播放(alsa方法) - 老@_@虎 - 金窝银窝不如自己的草窝

  使用aplay -l,查看声卡的播放设备

   如下图,line-out的播放设备是card 0 ,device 0

   其他device3,device7是在HDMI通道上,我们这里没用到。

5.使用arecord进行录音操作

linux声卡录音和播放(alsa方法) - 老@_@虎 - 金窝银窝不如自己的草窝

这里要解释下具体参数的含义

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进行播放操作

linux声卡录音和播放(alsa方法) - 老@_@虎 - 金窝银窝不如自己的草窝

这里要解释下具体参数的含义

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调节音量

linux声卡录音和播放(alsa方法) - 老@_@虎 - 金窝银窝不如自己的草窝

使用上下键盘进行音量的调节。

9.使用API函数编程

参考官方文档

http://users.suse.com/~mana/alsa090_howto.html#sect03

posted on 2019-08-21 15:33  katago  阅读(7845)  评论(0编辑  收藏  举报