Android 使用tinyalsa测试音频
一、tinyalsa简介
Android 中并没有使用标准的 ALSA,而是使用一个 ALSA 的简化版叫做 tinyalsa。ALSA是Advanced Linux Sound Architecture,高级Linux声音架构的简称。它在Linux操作系统上提供了音频和MIDI(Musical Instrument Digital Interface,音乐设备数字化接口)的支持。Android 中使用 tinyalsa 控制管理多种模式的音频通路,我们也可以使用 tinyalsa 提供的四个工具tinymix、tinycap、tinyplay、tinypcminfo进行对音频的查看、调试。
二、tinyalsa 的编译
前提:tinyalsa的源码位于Android源码的external/tinyalsa目录下,确保该目录有tinyalsa的完整源码
1.对tinyalsa进行编译
$mmm external/tinyalsa
2.查看编译信息是否编译成功,成功后会在out目录mk配置路径下生成例如system/bin/tinycap文件夹
3.将目录下生成的libtinyalsa.so文件和四个工具push到系统目录
adb push libtinyalsa.so /system/lib/
adb push tinymix /system/lib/
adb push tinyplay /system/lib/
adb push tinycap /system/lib/
adb push tinypcminfo /system/lib/
4.对工具赋权
adb root
adb remount
adb shell
cd system/lib
chmod 777 tinymix
chmod 777 tinycap
chmod 777 tinyplay
chmod 777 tinypcminfo
exit
上述步骤全部完成后,使用 adb shell 进入系统后,执行工具相关的指令如果可以打印出相关的测试信息,说明工具生效成功。
三、工具功能介绍
1.tinymix
tinymix 可以得到音频通路相关的各项配置参数。也可以通过添加参数修改其中的配置
tinymix
2.tinyplay
tinyplay用于播放tinycap采集的pcm或wav格式录音,不能进行 MP3 等格式的编码,支持 44.1kHz,48kHz 采样率的wav 音乐,使用方法
tinyplay 文件储存目录/test.pcm -D 0 - d 0
3.tinycap
tinycap用于采集系统录音,可以通过指令设置不用采样率,不同采样深度,不同声道的录音,使用方法
tinycap 文件存储目录/test.pcm -D 0 -d 0 -c 4 -r 44100 -b 16 -p 512 -n 6
参数说明:D 声卡 d 当前声卡下的录音或放音设备 c 通道数 r 采样率 b 采样深度 -p 中断帧数 n 周期
录音结束Ctrl+C
4.tinypcminfo
tinypcminfo 查看设备信息
tinypcminfo -D 0 -d 0
查看1号声卡的1号设备信息
四、测试工具
推荐使用Adode Audition来测试音频,查看pcm原始音频时需要点击“文件”–“导入”–“原始数据”查看,选择的采样率,声道,编码需和命令行敲tinycap录音时一致