android音乐示波器数据,Android音频底层调试-基于tinyalsa

因为Android中默认并没有使用标准alsa,而是使用的是tinyalsa。所以就算基于命令行的測试也要使用libtinyalsa。Android系统在上层Audio千变万化的时候,能够能这些个工具实时查看到,比方音频通道的切换等等。

1. 编译tinyalsa配套工具

$ mmm external/tinyalsa/

编译完后会产生tinyplay、tinymix、tinycap等工具。

tinymix: 查看配置混音器

tinyplay: 播放音频

tinycap: 录音

2. 查看当前系统的声卡

shell@X28_068_MIPI:/ # cat /proc/asound/cards

0 [RKRK312X ]: RK_RK312X - RK_RK312X

RK_RK312X

1 [RKsph0645lm4h ]: RK_sph0645lm4h - RK_sph0645lm4h

RK_sph0645lm4h

shell@X28_068_MIPI:/ # ls -l /dev/snd/

crw-rw---- system audio 116, 0 2015-01-22 10:22 controlC0

crw-rw---- system audio 116, 32 2015-01-22 10:22 controlC1

crw-rw---- system audio 116, 24 2015-01-22 10:22 pcmC0D0c

crw-rw---- system audio 116, 16 2015-01-22 10:22 pcmC0D0p

crw-rw---- system audio 116, 25 2015-01-22 10:22 pcmC0D1c

crw-rw---- system audio 116, 17 2015-01-22 10:22 pcmC0D1p

crw-rw---- system audio 116, 56 2015-01-22 10:22 pcmC1D0c

crw-rw---- system audio 116, 33 2015-01-22 10:22 timer

3. tinymix查看混响器

tinymix用法:

不加任何參数 --- 显示当前配置情况

tinymix [ctrl id] [var] --- 不加[var]能够查看该[ctrl id]可选选项。

root@android:/ # tinymix

Number of controls: 7

ctl type num name value

0 ENUM 1 Playback Path OFF

1 ENUM 1 Capture MIC Path MIC OFF

2 ENUM 1 Voice Call Path OFF

3 ENUM 1 Voip Path OFF

4 INT 2 Speaker Playback Volume 0 0

5 INT 2 Headphone Playback Volume 0 0

6 ENUM 1 Modem Input Enable ON

相应解释:

英文

中文

备注

Playback Path

音频输出通道

Capture MIC Path

音频输入通道

Voice Call Pah

通话音频通道

设备没有通话模块,暂无法測试

Voip Pah

IP电话音频通道

场景Gtalk;值有:SPK/HP_NO_MIC/BT

Speaker Playback Volume

扬声器音量

和上层音量值无关

Headphone Playback Volume

耳机音量

同上

Modem Input Enable

暂不知何用

经測试不能控制音频输入输出

Playback Path:

英文

中文

备注

OFF

关闭

RCV

SPK

扬声器

经常使用

HP

耳机带麦

HP_NO_MIC

耳机无麦

经常使用

BT

蓝牙

SPK_HP

RING_SPK

RING_HP

RING_HP_NO_MIC

RING_SPK_HP

例:将输出切换到扬声器

root@android:/ # tinymix 0 SPK

关于tinymix小结:

通过观察发现,Android系统的声音音量的调节并没有直接使用tinyalsa,而基于上层软件实现。由于不管上层音量怎么改变,这里看到的都是24(以我使用的设备为例)。

通道的切换是真正使用了tinyalsa,当通过不同通道播放音乐的时候能够实时观察到通道的切换。在某个站点上看到Android在没有声音播放的3秒后会关闭alsa,这里也得到了证实,我曾经觉得Android系统会永久占用音频设备。

当通过蓝牙播放音乐的时候,已经不经过alsa了,tinymix查看到都处理关闭状态。由于Android4.2的蓝牙协议所有在用户层实现了,直接走uart通道。

4. 使用tinyplay播放wav音乐

一般播放1khz 0db正弦波,然后在codec输出端示波器简单测量是否失真,杂音,然后再使用音频分析仪测试指标。

shell@X28_068_MIPI:/ # tinyplay

Usage: tinyplay file.wav [-D card] [-d device] [-p period_size] [-n n_periods]

shell@X28_068_MIPI:/ # tinyplay /sdcard/test44.wav -D 0 -d 0 -p 1024 -n 3

Playing sample: 2 ch, 44100 hz, 32 bit

5. 通过tinycap录音

shell@X28_068_MIPI:/ # tinycap

Usage: tinycap file.wav [-D card] [-d device] [-c channels] [-r rate] [-b bits] [-p period_size] [-n n_periods]

shell@X28_068_MIPI:/ # tinycap /sdcard/rec.wav -D 0 -d 0 –c 2 –r 44100 –b 16 –p 1024 –n 3

6. 其它

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值