音频---alsa和tinyalsa使用说明

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

posted on 2024-07-02 16:53  林西索  阅读(7)  评论(0编辑  收藏  举报