最近折腾一个bug,AudioManager设置了模式MODE_IN_COMMUNICATION后,播放音频文件前两秒会丢失。如果改为其他模式比如MODE_NORMAL就是正常的。但是业务功能有个要求就是可以通过感应距离切换扬声器模式和听筒模式,只有设置了MODE_IN_COMMUNICATION才能正常切换。
折腾了许久,没有好办法,暂时想到的是,提前设置好MODE_IN_COMMUNICATION模式(原有代码逻辑是播放时设置),播放结束后重新设置一遍MODE_IN_COMMUNICATION。相当于把
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
这一操作提前,提前在播放前2秒以上,下次播放时就不会有声音丢失了。
网友评论