目录
alsa和tinyalsa使用说明
ALSA (Advanced Linux Sound Architecture)
- 即高级 Linux 声音架构,是一个开源项目,
在 Linux 操作系统上提供了对音频和 MIDI 的支持。它涵盖了用户空间和内核空间对
音频设备的操作接口,通过应用层使用 alsa-lib 可以实现对音频设备的控制。
TinyAlsa
- 是 Android 推出的一个精简的 ALSA 库。它的主要优势在于代码精简,易于阅读和理解,在资源有限的嵌入式系统中是一种理想的音频解决方案。
一.alsa
1.确定是否安装alsa驱动
- 如果有
/proc/asound/cards
路径,说明 ALSA 驱动已经使用上,
2.查看声卡设备:
cat /proc/asound/cards
0 [Intel ]: HDA-Intel - HDA Intel
HDA Intel at 0xf2520000 irq 17
其中HDA-Intel表示设备名字,0为设备节点。
3.查看录音和播音设备信息
arecord查看录音设备,aplay查看播音设备
$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: Intel [HDA Intel], device 0: HDA Generic [HDA Generic]
Subdevices: 1/1
Subdevice #0: subdevice #0
aplay 查看 speaker (output device) :
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: HDA Generic [HDA Generic]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: INTEL HDMI [INTEL HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
4.录音和播放
- 录音10s
arecord -d 10 /tmp/t.wav
- 播放录音
aplay /tmp/t.wav
二.tinyalsa使用说明
tinyalsa包含这几个工具:tinycap、tinyhostless、tinymix、tinypcminfo、tinyplay,
tinypcminfo可以用来查看pcm通道相关信息。
1.tinypcminfo查看pcm通道的相关信息:
xxxx:/storage/emulated/0/Music # tinypcminfo -D /proc/asound/cards
Info for card 0, device 0:
PCM out:
Access: 0x000009
Format[0]: 0x000ccc
Format[1]: 00000000
Format Name: S16_LE, S16_BE, S24_LE, S24_BE, S32_LE, S32_BE
Subformat: 0x000001
Rate: min=8000Hz max=192000Hz
Channels: min=1 max=2
Sample bits: min=16 max=32
Period size: min=0 max=24576
Period count: min=1 max=16
PCM in:
cannot open device '/dev/snd/pcmC0D0c'
Device does not exist.
也可以直接带上声卡和设备信息来查看:
:/ # tinypcminfo -D 0 -d 0
Info for card 0, device 0:
PCM out:
Access: 0x000009
Format[0]: 0x000ccc
Format[1]: 00000000
Format Name: S16_LE, S16_BE, S24_LE, S24_BE, S32_LE, S32_BE
Subformat: 0x000001
Rate: min=8000Hz max=192000Hz
Channels: min=1 max=2
Sample bits: min=16 max=32
Period size: min=0 max=24576
Period count: min=1 max=16
PCM in:
cannot open device '/dev/snd/pcmC0D0c'
Device does not exist.
从输出获得的信息中可以知道PCM的采样率,通道个数,采样点数等信息。
2.tinyplay
tinyplay只能播放wav格式的音频文件,如:
tinyplay 48000_2ch_16bit.wav
3.tinycap录音
录音1分钟:tinycap /sdcard/456.wav -d 1