alsa-utils 的使用


 ref : https://blog.csdn.net/outstanding_yzq/article/details/8126350

一.alsa-utils介紹

ALSA是kernel中的一個聲音驅動程序.它包括alsa核心和其他聲卡的驅動.
alsa-utils是alsa的一個工具包,里面包含有聲卡測試和音頻編輯的工具.
 

二.alsa-utils的安裝

1.RPM包方式

Turbolinux 10.5,11版本已經包含有alsa-utils的rpm包,你可以直接安裝:
# rpm -ivh alsa-utils-xxx.rpm

2.源碼包方式

下載地址:
http://www.alsa-project.org/main/index.php/Download
源碼包安裝方法:
# tar zxvf alsa-utils-1.0.6.tar.gz
# cd alsa-utils-1.0.6
# ./configure
# make install

三.alsa-utils工具的使用

alsa-utils包含的工具有:
alsactl, aconnect, alsamixer, amidi, amixer, aplay, aplaymidi, arecord, arecordmidi,
aseqnet, iecset, speaker-test

1.alsactl的使用

alsactl用來對alsa聲卡驅動進行一些高級的設置.系統中裝有多個聲卡,它也可以支持。
有時在音量控制面板無法調整的選項,可以使用alsactl來實現。
alsactl可以將指定聲卡的驅動程序設置信息保存到配置文件.或從配置文件中恢復指定
聲卡的驅動程序的設置信息。
alsactl格式:
 
alsactl [options] [store|restore] <card # or id>
 
選項:
 
-h, --help
        打印幫助信息
       -f, --file
        指定使用的配置文件,默認為/etc/asound.state.
              Select   the   configuration   file  to  use.  The  default  is
              /etc/asound.state
 
 
       -F, --force
        與恢復命令一起使用.表示最大限度的恢復設置值.
 
 
       -d, --debug
        調試模式,輸出更多細節信息.
       -v, --version
        打印alsactl版本號.
文件:
   /etc/asound.state(或使用-f指定的文件)保存有聲卡所有混合器的設置信息.
示例:
# rm /etc/asound.state -f
# alsactl store

2.aconnect的使用

aconnect是ALSA音序器的連接管理器.用來連接或斷開ALSA音序器上的端口.端口是
可以隨意定義的。
如,使用aconnect可以連接到任何由aseqview建立的設備端口.
命令格式:
aconnect [-d] [-options] sender receiver
      aconnect -i|-o [-options]
      aconnect -x
 
選項:
連接管理
-d, --disconnect
       斷開連接.
      -e, --exclusive
       使用獨占模式連接端口.發送和接收端口將不能再與其他端口相連.
      -r, --real queue
       將時間包的時間戳,轉換為真實時間隊列的當前值.
 
顯示端口
-i, --input
       顯示存在的輸入端口.
      -o, --output
       顯示存在的輸出端口.
      -l, --list
       顯示當前的連接狀態.
刪除連接
-x, --removeall
       刪除所有連接.
示例:
連接端口64:0到65:0:
           % aconnect 64:0 65:0
這個連接是單向的,所有到發送端口64:0的數據,將被重定向到接收65:0端口.如果有另一個端口65:1,
也使用64:0作為發送端口,則數據會同時發送到2個接收端口.
端口連接時,使用:
           % aconnect -d 64:0 65:0
地址也可以使用客戶端的名字來代替:
           % aconnect External:0 Emu8000:1
使用-i打印出輸入端口信息.-o打印出輸出端口信息.
           % aconnect -i
           client 0: ’System’ [type=kernel]
               0 ’Timer           ’
               1 ’Announce        ’
           client 64: ’External MIDI-0’ [type=kernel]
               0 ’MIDI 0-0        ’
可以使用-x選項來清除所有的連接.
           % aconnect -x

3.alsamixer的使用

alsamixer是一個終端界面的聲卡音量調節器.如圖:
命令格式:
alsamixer [options]
 
選項:
-h, -help
       顯示幫助信息.
      -c <card number or idenfication>
       指定需要設置的聲卡.默認為0.
      -D <device identification>
       選擇需要控制的調節器.
      -g
       設置界面顏色.
      -s
       最小化界面窗口.
 
快捷鍵:
   進入alsamixer界面后,可以使用下面快捷鍵進行控制:
 
常規控制:
   左右箭頭或n,p    用來選擇通道.
    上下箭頭或+,-    同時調整選定通道的左右聲道的音量.
    B,=    設置左右聲道音量相同.
    M    靜音當前通道.<,>分別對左,右聲道靜音.
    空格    選擇錄音源.在選定的通道上按"空格",可以標記此通道為錄音源.此操作僅限
        輸入設備.插入鍵或";",刪除鍵或"'"分別選定左右通道.
    L    刷新屏幕.
 
快捷設置
PageUp    增大5格音量.
      PageDown    減小5格音量.
   
      End    設置音量為0.
   分別調整左,右或整個通道的音量.
   Q,W,E    增大 左,右,通道 的音量.
   Z,X,C    減小 左,右,通道 的音量.
   alt-q,ESC    退出.
 
 
4.amidi的使用
amidi的作用是對ALSA的RawMIDI端口進行讀寫.
amidi是一個命令行工具,允許你以獨占模式向MIDI設備讀/寫數據.
命令格式:
amidi options
 
選項:
   -h,-V,-l,-L    用於顯示信息.
    -s,-r,-S,-d    用於發送/接收數據.
       -h, --help
        打印幫助信息.
       -V, --version
        打印版本號.
       -l, --list-devices
        打印所有硬件MIDI端口的列表.
       -L, --list-rawmidis
        打印所有RawMIDI定義.
       -p, --port=name
        設置要使用的ALSA RawMIDI端口.若不指定,則使用聲卡0的端口0.
       -s, --send=filename
        發送指定文件的內容到MIDI端口.文件中必須包含raw MIDI命令(.syx,.mid文件).
       -r, --receive=filename
        將MIDI端口接收的數據寫入指定文件.
       -S, --send-hex="..."
        發送十六進制字節到MIDI端口.
       -d, --dump
        從MIDI端口接收數據,然后以十六進制形式打印出來.
       -t, --timeout=秒
        指定超時,當端口無數據輸出達到超時時長時,將停止接收數據.
示例:
       amidi -p hw:0 -s my_settings.syx
        發送my_settings.syx終端MIDI命令到端口 hw:0.
       amidi -S ’
        發送XG復位到默認端口.
       amidi -p virtual -d
        建立一個虛擬RawMIDI端口,然后發送所有數據到這個端口.

5.amixer的使用

amixer是命令行的ALSA聲卡驅動調節器工具.
amixer用來在命令行控制ALSA的調節器,並且支持多聲卡.
amixer不加參數時,將打印默認聲卡的設置信息.
命令格式:
amixer [-c card] [cmd]
 
命令:
help   顯示語法幫助.
       info   顯示調節器設備的信息.
       scontrols    顯示調節器器的完整列表 .
       scontents    顯示包含詳細信息的調節器的完整列表.
       set or sset <SCONTROL> <PARAMETER> ...
            設置調節器信息.
       get or sget <SCONTROL>
            顯示調節器的信息.
       controls    顯示聲卡控制器的信息.
        
       contents    顯示完整的聲卡控制器信息.
       cset <CONTROL> <PARAMETER> ...
        設置聲卡控制器信息.
       cget <CONTROL>    顯示聲卡控制器的信息.
 
 
選項:
[-c card]
        選擇指定的聲卡.
       [-D device]
        選擇需要控制的設備名.默認是 default.
       -h     Help
        顯示幫助信息.
       -q
        安靜模式.不輸出設置結果.
示例:
# amixer -c 1 sset Line,0 80%,40% unmute cap
     設置第2塊聲卡的"line"的左聲道音量為80%,右聲道為40%,取消靜音,並設置
    它為聲音源.
      # amixer -c 2 cset numid=34 40%
    設置第34個聲卡元素為40%.

6.arecord,aplay的使用

arecord,aplay是命令行的ALSA聲卡驅動的錄音和播放工具.
arecord是命令行ALSA聲卡驅動的錄音程序.支持多種文件格式和多個聲卡.
aplay是命令行播放工具,支持多種文件格式.
命令格式:
arecord [flags] [filename]
       aplay [flags] [filename [filename]] ...
 
選項:
-h, --help
             幫助.
       --version
              打印版本信息.
       -l, --list-devices
              列出全部聲卡和數字音頻設備.
       -L, --list-pcms
              列出全部PCM定義.
       -D, --device=NAME
        指定PCM設備名稱.
       -q --quiet
        安靜模式.
       -t, --file-type TYPE
        文件類型(voc,wav,raw或au).
       -c, --channels=#
        設置通道號.
       -f --format=FORMAT
        設置格式.格式包括:S8  U8  S16_LE  S16_BE  U16_LE
              U16_BE  S24_LE S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BE
              FLOAT_LE  FLOAT_BE  FLOAT64_LE  FLOAT64_BE   IEC958_SUBFRAME_LE
              IEC958_SUBFRAME_BE MU_LAW A_LAW IMA_ADPCM MPEG GSM
       -r, --rate=#<Hz>
        設置頻率.
       -d, --duration=#
        設置持續時間,單位為秒.
       -s, --sleep-min=#
        設置最小休眠時間.
       -M, --mmap
        mmap流.
       -N, --nonblock
        設置為非塊模式.
       -B, --buffer-time=#
        緩沖持續時長.單位為微妙.
       -v, --verbose
        顯示PCM結構和設置.
       -I, --separate-channels
        設置為每個通道一個單獨文件.
示例:
aplay -c 1 -t raw -r 22050 -f mu_law foobar
    播放raw文件foobar.以22050Hz,單聲道,8位,mu_law格式.
       arecord -d 10 -f cd -t wav -D copy foobar.wav
    以CD質量錄制foobar.wav文件10秒鍾.使用PCM的"copy".

7.aplaymidi的使用

aplaymidi用來播放標准的MIDI文件.
aplaymidi是一個命令行工具,可以在一個或多個ALSA端口上播放MIDI
文件.
命令格式:
aplaymidi -p client:port[,...] [-d delay] midifile ...
選項:
-h, --help
             輸出幫助信息.
      -V, --version
             輸出版本信息.
      -l, --list
             輸出可以使用的輸出端口列表.
      -p, --port=client:port,...
       設置端口.
      -d, --delay=seconds
       設置MIDI文件結束后,等待時長.
 
 
8.arecordmidi的使用
arecordmidi用於錄制標准的MIDI文件.
arecordmidi可以從一個或多個ALSA端口上,錄制一個標准MIDI文件.
命令格式:
arecordmidi -p client:port[,...] [options] midifile
 
選項:
-h,--help
             打印幫助信息.
      -V,--version
             打印版本號.
      -l,--list
             打印可以使用的輸入端口.
      -p,--port=client:port,...
       設置端口.
      -b,--bpm=beats
       設置MIDI文件的速率,默認為120 BPM.
      -f,--fps=frames
       設置幀率.
      -s,--split-channels
       設置每個通道將錄制成一個單獨的MIDI文件.
      -d,--dump
       在標准輸出上,以文本形式顯示接受到的事件信息

9.aseqnet的使用

aseqnet是ALSA調節器的網絡連接工具.
aseqnet是ALSA調節器的客戶端程序,可以從網絡上發送和接收事件數據包.
網絡上有主機A,主機B.A為服務器端,B為客戶端.ALSA調節器系統必須同事運行
在兩個服務器上.然后建立服務器端口:
hostA% aseqnet
sequencer opened: 128:0
在HostB上執行:
hostB% aseqnet hostA
sequencer opened: 132:0
現在所有發送到HostA:128:0的數據將被傳送到HostB:132:0上,反之亦然.
命令格式:
aseqnet [remotehost]
 
選項:
-p port
       指定TCP端口號或服務名.
      -s addr
       設置指定地址用於讀操作.
      -d addr
       設置指定地址用於寫操作.
      -v
       詳細輸出模式

10.iecset的使用

設置或輸出IEC958狀態位。
iecset是個小工具,通過ALSA的API,設置或輸出IEC958(或稱S/PDIF)狀態位信息.
直接運行iecset將輸出當前IEC958的狀態信息
 
命令格式:
iecset [options] [cmd arg...]
 
選項:
-D device
       設置需要打開的設備名.
      -c card
       設置需要打開的網卡名.
      -x
       輸出AESx字節格式的狀態信息.
      -i
       從標准輸入讀取命令信息,每行一個命令.
 
命令:
professional <bool>
       專業模式(true)或用戶模式(false).
      audio <bool>
       音頻模式(true).
      rate <int>
       采樣頻率,單位Hz.
      emphasis <int>
       設置加強值.0 = none, 1 = 50/15us, 2 = CCITT.
      lock <bool>
       速率鎖.
      sbits <int>
       采樣位:2 = 20bit, 4 = 24bit, 6 = undefined.
      wordlength <int>
       設置字長:0  =  No,  2 = 22-18 bit, 4 = 23-19 bit, 5 = 24-20
             bit, 6 = 20-16 bit.
      category <int>
       分類:值從0到0x7f.
      copyright <bool>
       設置是否包含版權.
      original <boo>
       原始標記:
示例:
輸出當前IEC958信息.
$ iecset
   Mode: consumer
   Data: audio
   Rate: 44100 Hz
   Copyright: permitted
   Emphasis: none
   Category: general
   Original: 1st generation
   Clock: 1000 ppm
 
顯示當前第1塊聲卡的IEC958狀態位.
$ iecset -Dhw:0
   Mode: consumer
   Data: non-audio
   Rate: 44100 Hz
   Copyright: permitted
   Emphasis: none
   Category: general
   Original: 1st generation
   Clock: 1000 ppm
 
設置當前為用戶模式,並打開"非音頻"位.
$ iecset pro off audio off
   Mode: consumer
   Data: non-audio
   Rate: 44100 Hz
   Copyright: permitted
   Emphasis: none
   Category: general
   Original: 1st generation
   Clock: 1000 ppm

11.speaker-test的使用

speaker-test是一個針對 ALSA驅動的聲音測試工具.
speaker-test可以分別對左右聲道進行單獨的測試.
命令格式:
speaker-test [-options]
 
選項:
-c | --channels NUM
       設置通道數目.
      -D | --device NAME
       設置使用的PCM設備名.
      -f | --frequency FREQ
       設置聲音頻率.
      --help
       輸出幫助信息.
      -b | --buffer TIME
       設置緩沖區時長.0為使用最大的緩沖區大小.
      -p | --period TIME
       設置節拍為多少微秒.
      -r | --rate RATE
       設置音頻率.
      -t | --test pink|sine|wav
             -t pink    表示測試時使用噪聲.
             -t sine    表示測試時使用音頻信號聲.
             -t wav    表示測試時使用WAV文件.
      -l | --nloops COUNT
       設置測試循環的次數.
      -w | --wavfile
       設置測試時播放的wav文件.
      -W | --wavdir
       設置一個包含wav文件的目錄.默認為/usr/share/sounds/alsa.
示例:
在一個音頻接口上進行立體聲測試
#  speaker-test -Dplug:front -c2
在兩個音頻接口上進行4聲道測試.
#  speaker-test -Dplug:surround40 -c4
在立體聲接口上進行5.1聲道測試.
# speaker-test -Dplug:surround51 -c6
測試低音揚聲器.
# speaker-test -Dplug:surround51 -c6 -s1 -f75
 
 


免責聲明!

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



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