很常见的一种场景,在主界面切换到音乐,此时按手机的声音加、减按键调节的就是媒体声音,退出音乐回到主界面,此时调节的就是通话声音,这个过程是如何切换的?可以从frameworks和app的层面解析,有没有关于这方面的文章,或帮忙解析下,谢谢!
参考:http://blog.csdn.net/kangear/article/details/40045743
对应用来说应该是设置AudioTrack的streamtype就可以切换。底层实现看源码了。
请看AudioFlinger源码的AudioPolicyService部分,有一个声音策略管理,会根据你的stream type采用不用的音量管理,
而且不同的stream type都有默认的声音输出设备,如Music类型的是speaker,voice call类型的是headset等等
总之比较复杂!
对于应用层的来说只要在不同界面控制不同的声音类型焦点就可以了。