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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM