前言
客戶購買多台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