tinyalsa使用
tinyalsa源码位于android源码目录下external/tinyalsa,包含了四个命令,分别是tinymix,tinycap, tinyplay,tinymeminfo和一个库libtinyalsa.so
使用mmm命令编译,mmm external/tinyalsa
相关目录及文件
- /dev/snd/ 系统下control设备管理、pcm设备都在此目录下
- /proc/asound/ 声卡相关信息可以在此目录下找到,命令:
cat /proc/asound/cards
可以查看系统下所有声卡及其ID - /sys/class/sound sys系统下声卡相关的文件结点在此目录下
1 tinymix
输入tinymixu会将声卡(不指定的话,默认为0)的所有control打印出来,下面为部分打印
# tinymix
Mixer name: 'wm8962-audio'
Number of controls: 105
ctl type num name value
0 BOOL 2 Input Mixer Switch On On
1 INT 1 MIXINL IN2L Volume 5
2 INT 1 MIXINL PGA Volume 0
3 INT 1 MIXINL IN3L Volume 5
4 INT 1 MIXINR IN2R Volume 5
5 INT 1 MIXINR PGA Volume 0
6 INT 1 MIXINR IN3R Volume 7
7 INT 2 Digital Capture Volume 108 108
8 INT 2 Capture Volume 63 63
9 BOOL 2 Capture Switch Off Off
10 BOOL 2 Capture ZC Switch On On
11 BOOL 1 Capture HPF Switch On
12 ENUM 1 Capture HPF Mode Hi-fi
每个control都有一个ID,查看具体某个control
root@sabresd_6dq:/ # tinymix 8
Capture Volume: 63 63 (range 0->63)
改变某个control的值
root@sabresd_6dq:/ # tinymix 8 "31 31"
root@sabresd_6dq:/ # tinymix 8
Capture Volume: 31 31 (range 0->63)
查看、修改enum类型的control,tinymix会列出所有control的选项,前面带>号为当前选项
root@sabresd_6dq:/ # tinymix 15
Capture LHPF Mode: >LPF HPF
root@sabresd_6dq:/ # tinymix 15 HPF
root@sabresd_6dq:/ # tinymix 15
Capture LHPF Mode: LPF >HPF
当前有多个声卡时,使用-D选项指定声卡,不指定的话默认为0
root@sabresd_6dq:/ # tinymix -D 1
Mixer name: 'imx-hdmi-soc'
Number of controls: 4
ctl type num name value
0 IEC958 1 IEC958 Playback Default unknown
1 INT 1 HDMI Support Channels 2
2 INT 3 HDMI Support Rates 32000 44100 48000
3 INT 1 HDMI Support Formats 16
2 tinyplay
tinyplay只能播放wav格式的音频文件
tinyplay test.wav
3 tinycap
录音格式如下,保存到record.wav
tinycap /sdcard/record.wav