alsa-utils工具的使用
发布日期:2021-06-29 02:35:20 浏览次数:2 分类:技术文章

本文共 7569 字,大约阅读时间需要 25 分钟。

下载地址:


源码包安装方法:

# 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


amixer controls 
查看可以控制的选项,可以通过numid控制
amixer contents
查看声卡内容
amixer cget  numid=(amixer controls 显示的)查看具体的选项
amixer cset    controls中所输出的某个参数      具体的值(比如,0,1,On,Off等)


1.alsactl

alsactl用来对alsa声卡驱动进行一些高级的设置.系统中装有多个声卡,它也可以支持.

有时在音量控制面板无法调整的选项,可以使用alsactl来实现.

alsactl可以将指定声卡的驱动程序设置信息保存到配置文件.或从配置文件中恢复指定

声卡的驱动程序的设置信息.

alsactl格式:

alsactl [options] [store|restore]

选项:

-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

指定需要设置的声卡.默认为0.

-D

选择需要控制的调节器.

-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 ...
设置调节器信息.

get or sget 
显示调节器的信息.

controls 显示声卡控制器的信息.

contents 显示完整的声卡控制器信息.

cset ...
设置声卡控制器信息.

cget 显示声卡控制器的信息.

选项:

[-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%.
#amixer -c 0 set Headphone 30(97%)
将第一个声卡耳机音量设置为30或者97%
#amixer -c 0 get Headphone
查看第一个
声卡耳机音量设置


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=#

设置频率.

-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".

arecord -vv -t wav -f S16_LE -c 2 -d 10 -r 24000 ./record.wav
-vv 显示录音文件的信息
-t 录音文件的类型
-f 文件格式
-c 声道,2为双声道
-r 设置波特率
-d 录音时间

7.aplaymidi

aplaymidi用来播放标准的MIDI文件.

aplaymidi是一个命令行工具,可以在一个或多个ALSA端口上播放MIDI

文件.

命令格式:

aplaymidi -p client p
ort[,...] [-d delay] midifile ...

选项:

-h, --help

输出帮助信息.

-V, --version

输出版本信息.

-l, --list

输出可以使用的输出端口列表.

-p, --port=client p
ort,...

设置端口.

-d, --delay=seconds

设置MIDI文件结束后,等待时长.

8.arecordmidi的使用

arecordmidi用于录制标准的MIDI文件.

arecordmidi可以从一个或多个ALSA端口上,录制一个标准MIDI文件.

命令格式:

arecordmidi -p client p
ort[,...] [options] midifile

选项:

-h,--help

打印帮助信息.

-V,--version

打印版本号.

-l,--list

打印可以使用的输入端口.

-p,--port=client
ort,...

设置端口.

-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

专业模式(true)或用户模式(false).

audio

音频模式(true).

rate

采样频率,单位Hz.

emphasis

设置加强值.0 = none, 1 = 50/15us, 2 = CCITT.

lock

速率锁.

sbits

采样位:2 = 20bit, 4 = 24bit, 6 = undefined.

wordlength

设置字长:0 = No, 2 = 22-18 bit, 4 = 23-19 bit, 5 = 24-20

bit, 6 = 20-16 bit.

category

分类:值从0到0x7f.

copyright

设置是否包含版权.

original

原始标记:

示例:

输出当前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

转载地址:https://blog.csdn.net/yyyyyyyyyywwwwwwwwww/article/details/51394801 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LINUX+APACHE+MYSQL+PHP安全加固配置说明
下一篇:UART和RS232/RS485的关系是什么?

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月21日 11时00分12秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章