Android音频通道之间的切换

很常见的一种场景,在主界面切换到音乐,此时按手机的声音加、减按键调节的就是媒体声音,退出音乐回到主界面,此时调节的就是通话声音,这个过程是如何切换的?可以从frameworks和app的层面解析,有没有关于这方面的文章,或帮忙解析下,谢谢!

4个回答

deng0zhaotai
dztai 首先谢谢您的回答,我的意思跟是否插入耳机没有关系,只是各个界面之间的切换,调节的声音不一样,这个是如何控制的?不同的channel由不同的type来控制,但是在切换回到Luncher时由谁把type切换回通话的channel?
5 年多之前 回复

对应用来说应该是设置AudioTrack的streamtype就可以切换。底层实现看源码了。

请看AudioFlinger源码的AudioPolicyService部分,有一个声音策略管理,会根据你的stream type采用不用的音量管理,
而且不同的stream type都有默认的声音输出设备,如Music类型的是speaker,voice call类型的是headset等等
总之比较复杂!

对于应用层的来说只要在不同界面控制不同的声音类型焦点就可以了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐