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的官方说明文档

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android凭借其开源,良好的用户体验,高性价比,庞大的应用程序等优势迅速发展起来并保持强劲的发展势头。如今Android智能手机、Android平板电脑等移动产品已走入人们的日常生活,成为人们通讯、娱乐的重要工具。本设计以malata采用RK2918方案的Android平板电脑项目为背景,主要任务是设计和实现Android平板电脑的音频系统,为广大平板用户提供良好的音频体验。 ALSA(Advanced Linux Sound Architecture,高级Linux声音架构)在Linux操作系统上提供了音频和MIDI(Musical Instrument Digital Interface,音乐设备数字化接口)的支持。它的主要特性包括:高效地支持从消费类入门级声卡到专业级音频设备所有类型的音频接口,完全模块化的设计,支持对称多处理和线程安全,对OSS(Open Sound System,开放声音系统)的向后兼容,以及提供了用户空间的alsa-lib库来简化应用程序的开发[1]。基于ALSA音频系统能够很好的适应硬件的多样性,因此Android设备厂商能够更灵活地根据不同需求选择不同的音频编解码芯片。ALC5625是一款高度集成低功耗高保真的带I2S/PCM接口并具有多路输入输出音频编解码器,可满足本次设计的各项需求。 基于ALSA的Andorid音频系统拥有一个标准和健全的架构,自上而下由Audio应用程序、Audio Java框架层、Audio本地框架层、AudioFlinger、Audio硬件抽象层、alsa-lib和底层Audio驱动几个部分组成。本文分析音频系统架构的各个层次,并着重阐述ALSA在Android音频系统中的应用以及Audio驱动的详细实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值