Platform: rk3399
OS: Android 7.1
Kernel: v4.4.83
概念:
Ducking就是当其他应用在使用音频时降低自身音量的过程。
举例: 当你开车在边听车载音乐边导航时,当导航发声时,音乐会自动变小,等当行播放完毕,音乐又正常恢复到原来的音量。
背景:
摘网友一段话来描述AudioFocus的来历,Ducking属于其中的一种模式:
Android是多任务系统,Audio系统是竞争资源。Android2.2之前,没有内建的机制来解决多个程序竞争Audio的问题,2.2引入了称作AudioFocus的机制来管理对Audio资源的竞争的管理与协调。本文主要讲解AudioFocus的使用。
按照AudioFocus的机制,在使用Audio之前,需要申请AudioFocus,在获得AudioFocus之后才可以使用Audio;如果有别的程序竞争你正在使用的Audio,你的程序需要在收到通知之后做停止播放或者降低声音的处理。值得指出的是,这种机制是需要合作完成的,需要所有使用Audio资源的程序都按照这种机制来做,而如果有程序在它失去AudioFocus的时候仍然在使用Audio,AudioFocus拿它也没办法。而这一点对于开放系统的Android来说很致命的:用户可能安装没遵守这种机制的程序,或者版本太老还没引入这种机制的程序,这最终会导致很差的用户体验。
Ducking方法: