嵌入式软件工程师&&太极拳
全部博文(548)
分类: LINUX
2011-03-15 20:08:11
ALSA是kernel中的一个声音驱动程序.它包括alsa核心和其他声卡的驱动.
alsa-utils是alsa的一个工具包,里面包含有声卡测试和音频编辑的工具.
Turbolinux 10.5,11版本已经包含有alsa-utils的rpm包,你可以直接安装:
下载地址:
源码包安装方法:
# tar zxvf alsa-utils-1.0.6.tar.gz # cd alsa-utils-1.0.6 # ./configure # make installalsa-utils包含的工具有:
alsactl用来对alsa声卡驱动进行一些高级的设置.系统中装有多个声卡,它也可以支持.
有时在音量控制面板无法调整的选项,可以使用alsactl来实现.
alsactl可以将指定声卡的驱动程序设置信息保存到配置文件.或从配置文件中恢复指定
声卡的驱动程序的设置信息.
示例:
# rm /etc/asound.state -f # alsactl storeaconnect是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 -xalsamixer是一个终端界面的声卡音量调节器.如图:
amidi的作用是对ALSA的RawMIDI端口进行读写.
amidi是一个命令行工具,允许你以独占模式向MIDI设备读/写数据.
示例:
amidi -p hw:0 -s my_settings.syx 发送my_settings.syx终端MIDI命令到端口 hw:0. amidi -S ’ 发送XG复位到默认端口. amidi -p virtual -d 建立一个虚拟RawMIDI端口,然后发送所有数据到这个端口.amixer是命令行的ALSA声卡驱动调节器工具.
amixer用来在命令行控制ALSA的调节器,并且支持多声卡.
amixer不加参数时,将打印默认声卡的设置信息.
命令格式:
amixer [-c card] [cmd] 命令: help 显示语法帮助. info 显示调节器设备的信息. scontrols 显示调节器器的完整列表 . scontents 显示包含详细信息的调节器的完整列表. set or sset示例:
# amixer -c 1 sset Line,0 80%,40% unmute cap 设置第2块声卡的"line"的左声道音量为80%,右声道为40%,取消静音,并设置 它为声音源. # amixer -c 2 cset numid=34 40% 设置第34个声卡元素为40%.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=#示例:
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".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文件结束后,等待时长.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 在标准输出上,以文本形式显示接受到的事件信息aseqnet是ALSA调节器的网络连接工具.
aseqnet是ALSA调节器的客户端程序,可以从网络上发送和接收事件数据包.
网络上有主机A,主机B.A为服务器端,B为客户端.ALSA调节器系统必须同事运行
在两个服务器上.然后建立服务器端口:
在HostB上执行:
现在所有发送到HostA:128:0的数据将被传送到HostB:132:0上,反之亦然.
命令格式:
aseqnet [remotehost] 选项: -p port 指定TCP端口号或服务名. -s addr 设置指定地址用于读操作. -d addr 设置指定地址用于写操作. -v 详细输出模式.设置或输出IEC958状态位.
iecset是个小工具,通过ALSA的API,设置或输出IEC958(或称S/PDIF)状态位信息.
直接运行iecset将输出当前IEC958的状态信息. 命令格式:
示例:
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.示例: