兜兜转转做了这么多年Android,那么多模块,但是之前Android的Audio子系统一直未曾触及,常言道,得不到的总是最香的,自己不会的总是最好的。恰逢最近的产品又是语音智能相关,音频也是一大特色功能,可是找一个音频工程师小伙伴那是多难,比自己干都难,只好赶鸭子上架。
这次的Android项目是基于Android 9对音频子系统进行了多处定制,在HAL层修改了音频输入的路径,在HAL层加入了自有的声学前处理模块(降噪、回声消除等),将音频处理后通过Android流程送入Framework;修改了支持多路同时录音,这是Android 9原生代码还不支持的;修改了Audio输出的路由,支持多路同时播放,也就是可以通过不同的输出设备同时出不同的声音;音频又是对延时如此敏感的娇嫩之物。。。是不是说的有点多了。
网上音频相关文章很多但是也很碎片化,Android音频的Code也是纷繁复杂,音频又是多少有一些自己的领域知识基础。最初如果有人能够条丝缕析,拉平这条学习、掌握的曲线,甚至拉短这条学习的曲线,那该多好!这个系列的文章尝试让大家能够更快地掌握Android音频,能够更好地理解,更快地应用,尤其是目前智能座舱热起来后,音频开发和定制也是其中一个非常重要的功能。仔细的回顾了自己的这段学习旅程,希望这系列文章能够给大家带来帮助,希望大家能够从理解音频子系统开始,到能够应用,不论是写音频相关的应用还是做系统开发。
这系列文章不希望仅仅介绍音频各个模块的实现,例如AudioRecod的流程、AudioTrack的流程、AudioFlinger的实现等等,那这样的话就