linux alsa-utils测试音频输入输出

1、理解配置文件alsa.conf

配置文件的位置是由Configure阶段的选项来决定的,不过多数时候,Alsa的配置文件位于:/usr/share/alsa目录下,主要配置文件为/usr/share/alsa/alsa.conf ,其它文件是否需要,位置在哪,都是由alsa.conf来决定的。

通常会有/usr/share/alsa/card 和/usr/share/alsa/pcm两个子目录,用于设置Card相关的参数,别名以及一些PCM默认设置。
此外,在alsa.conf中,通常还会引用 /etc/asound.conf 和 ~/.asoundrc这两个配置文件,这两个文件通常是放置你个人需要特殊设置的相关参数。按照Alsa官方文档的说法,1.0.9版本以后,这两个文件就不再是必要的,甚至是不应该需要的。至少是不推荐使用吧。不过,对于我来说,在嵌入式系统中使用,为了简单和方便测试,恰恰是需要修改这两个文件 )

即:

Alsa的配置文件位于:/usr/share/alsa目录下。
/usr/share/alsa/alsa.conf  主要配置文件,这个配置文件会加载读取 /etc/asound.conf 和 ~/.asoundrc 的配置
/usr/share/alsa/card          设置Card相关的参数
/usr/share/alsa/pcm          一些PCM默认设置

2、解释配置文件alsa.conf

Alsa.conf中主要的一些内容包括:用hook读取了/etc/asound.conf 和 ~/.asoundrc这两个配置文件:

@hooks [                                           
        {                                                
                func load                            
                files [                                         
                        "/etc/asound.conf"     
                        "~/.asoundrc"        
                ]                        
                errors false                       
        }                                             
]

设置了default pcm的一些默认参数,如,默认使用Card 0 ,Device 0作为音频设备等等。

defaults.ctl.card 0      
defaults.pcm.card 0      
defaults.pcm.device 0 
defaults.pcm.subdevice -1                 
defaults.pcm.nonblock 1                
defaults.pcm.ipc_key 5678293
...

3、alsa-utils说明

alsa       :Advanced Linux Sound Architecture的缩写,高级Linux声音架构,它在Linux操作系统上提供了音频和MIDI(Musical Instrument Digital Interface,音乐设备数字化接口)的支持,音频的play播放record 记录都是通过这个框架完成的

alsamixer:是ALSA配置工具(基于文本下的图形界面),用于配置音频设备的各个参数,可以通过键盘的上下键,左右键等,很方便地设置需要的音量,开关某个switch(开关)等等操作.

amixer   :是alsamixer的文本模式,即命令行模式,需要用amixer命令的形式去配置你的声卡的各个选项。amixer可以从应用层来修改音频芯片的寄存器值,决定采用Mic输入、USB输入或者Line输入。

$ amixer controls  # show all controls for given card

$ amixer cget numid=10,iface=MIXER,name='Playback Volume'
numid=10,iface=MIXER,name='Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=255,step=0
  : values=255,255
  | dBscale-min=-127.50dB,step=0.50dB,mute=1


$ amixer cset numid=10,iface=MIXER,name='Playback Volume' 100,100

aplay     :播放音频

$ aplay music.wav 

arecord :录制音频

$ arecord -t wav -r 44100 -c 1 -f S16_LE test.wav

4、alsa配置状态保存,恢复和自动加载

alsa配置状态保存:

$ alsactl store -f /var/lib/alsa/asound.state

alsa配置状态恢复:

$ alsactl restore -f /var/lib/alsa/asound.state

alsa配置状态自动加载:

$ cd /etc/init.d  # 此目录存放启动/停止服务

$ vim S90AUDIO    # 新建audio服务

S90AUDIO内容:
#!/bin/sh
#
# Configure aduio alsa state....
#
echo "starting configure aduio alsa state...."
alsactl restore -f /var/lib/alsa/asound.state

参考网址:

理解和使用Alsa的配置文件

linux alsa音频架构的配置与使用

amixer,aplay,arecord交叉编译及使用

ALSA配置状态保存,恢复和自动加载

Alsa项目的官方网址

Alsa LIB API Reference

配置文件的语法

Asoundrc的官方说明文档

 

 

你可能感兴趣的:(linux驱动测试工具)