Android音频底层调试-基于tinyalsa

来源:互联网 发布:scada数据库 编辑:程序博客网 时间:2024/06/17 13:11

Android音频底层调试-基于tinyalsa

分类: Android 679人阅读 评论(2)收藏 举报
Androidtinyalsa

目录(?)[+]

  1. 编译tinyalsa配套工具
  2. 查看当前系统的声卡
  3. tinymix查看混响器
  4. 使用tinyplay播放wav音乐
  5. tinycap使用

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

 

1.编译tinyalsa配套工具

$ mmm external/tinyalsa/

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

tinymix: 查看配置混音器

tinyplay: 播放音频

tinycap: 录音

 

2.查看当前系统的声卡

[python] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. root@android:/ # cat /proc/asound/cards  
  2.  0 [RKRK616        ]: RK_RK616 - RK_RK616  
  3.                       RK_RK616  
  4.  1 [ROCKCHIPSPDIF  ]: ROCKCHIP-SPDIF - ROCKCHIP-SPDIF  
  5.                       ROCKCHIP-SPDIF  
  6. root@android:/   

3.tinymix查看混响器

tinymix使用方法a.不加任何参数-显示当前配置情况 b.tinymix [ctrl id] [var]不加[var]可以查看该[ctrl id]可选选项。

[python] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. root@android:/ # tinymix  
  2. Number of controls: 7  
  3. ctl type    num name                                     value  
  4. 0   ENUM    1   Playback Path                            OFF  
  5. 1   ENUM    1   Capture MIC Path                         MIC OFF  
  6. 2   ENUM    1   Voice Call Path                          OFF  
  7. 3   ENUM    1   Voip Path                                OFF  
  8. 4   INT 2   Speaker Playback Volume                  0 0  
  9. 5   INT 2   Headphone Playback Volume                0 0  
  10. 6   ENUM    1   Modem Input Enable                       ON  
  11. root@android:/ #  

对应解释:

英文

中文

备注

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音乐

这个只是一个最基本的播放器,所以不支持播放MP3等等压缩过格式的音乐。没有学会使用前,网上都说很麻烦,但是现在看来一点也不麻烦,直接播放了44.1kHz/44.8kHzwav音乐。

[python] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. root@android:/ # tinyplay /sdcard/0_16.wav                                       
  2. Playing sample: 2 ch, 44100 hz, 16 bit  
  3. root@android:/   

注:播放之前得首先使用tinymix把通道设置好,上文中已经给出了设置到扬声器中的例子;由于播放时使用的最大音量进行播放的,所以注意防止被吓到。这里将测试音频文件上传。

 

5.tinycap使用

root@android:/ # tinycap /sdcard/test.wav

可以进行录音。

 

目前只遇到这些,就先总结到这,可以随时再深入。


其它被证实为假的假设:

1.需要改写init.rc让系统不启动android相关的服务(mediaserver)

2.需要通过其它途径获取tinyalsa.

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我注册过借贷宝怎么办 拍拍贷已注册过怎么办 拍拍贷评估额度0怎么办 用钱宝逾期未还怎么办 支付宝被冻结怎么办啊 借钱没借条不还怎么办 借贷宝换号码了怎么办 借贷宝还不起了怎么办 花钱如流水的人怎么办 手机贷登录不上怎么办 如果被网上追逃怎么办 5s指纹排线断了怎么办 苹果6s指纹坏了怎么办 苹果的指纹坏了怎么办 苹果7指纹坏了怎么办 苹果6指纹坏了怎么办 指纹浅打不了卡怎么办 我要贷款5万怎么办 拍拍贷一千不还怎么办 牙龈肿里面有脓怎么办 爱奇艺会员账号忘了怎么办 被私立医院坑了怎么办 在医院被坑了怎么办 流产后子宫内膜薄怎么办 人流后内膜过厚怎么办 子宫内膜薄月经量少怎么办 子宫内膜很薄该怎么办 月经量少子宫内膜薄怎么办 子宫内薄没月经怎么办 感冒20多天不好怎么办 皮肤干燥又痒怎么办了 眼周皮肤很干怎么办 产后掉头发很厉害怎么办 班上学生很吵怎么办 进了网贷黑名单怎么办 预约了挂号没去怎么办 吃完米索手心痒怎么办 三岁宝宝湿疹了怎么办 割完剥皮后水肿怎么办 微医预约挂号后怎么办 人流后出现腰疼怎么办