android audio我的一些理解

做android好几年了,audio模块是持续时间最长的,但是我的工作尚未涉及driver,停留在audio framework及hal层,

audioservice这个java层面的service在systemserver进程中起来,供app层使用

与其它系统service一样,audioservice提供给app的api也是通过binder,其客户端为audiomanager

audioservice主要做工作:

   1、audio volume的初始化以及设置操作,最终到达audiopolicymanager层,这些都是可以根据需求重写的

   2、管理audiofocus队列,如果apk规范的话,一般涉及播放的都需要设置回调监听focus的改变,决定声音输出的顺序,

         当然对于电话,phone的优先级最高,

   3、ringmode,phonemode的设置以及管理;ringmode的改变与某些stream的volume也是息息相关

         phonemode的改变则涉及音频路由的切换,也可能牵涉volume的改变

   4、多媒体外设接入时的事件接收以及处理,涉及音频路由,volume的改变


然后是audiopolicyservice,audioflinger这两个service,放在mediaserver中

audiopolicy这块负责volume以及路由的计算,路由通过audioflinger设置到hal层进行切换


audioflinger主要工作:

      1、管理音频数据的输入输出,还包括audioeffect的管理,

       2、做为中间层,将上层的指令传递给audio hal


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值