在android5.0以上我们设置听筒模式audioManager.setMode(AudioManager.MODE_IN_CALL)没有效果;后来各种查阅资料,发现android5.0以上Google官方文档推荐使用
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
直接上切换代码:
/**
* 设置语音播放的模式
* @param ctx
* @param mode
*/
public void setAudioMode(Context ctx, int mode) {
if (mode != AudioManager.MODE_NORMAL && mode != AudioManager.MODE_IN_COMMUNICATION) {
return;
}
AudioManager audioManager = (AudioManager) ctx.getSystemService(Context.AUDIO_SERVICE);
if (mode == AudioManager.MODE_NORMAL) {
audioManager.setSpeakerphoneOn(true);//打开扬声器
} else if (mode == AudioManager.MODE_IN_COMMUNICATION) {
audioManager.setSpeakerphoneOn(false);//关闭扬声器
}
audioManager.setMode(mode);
}
做到这一步,如果此时还是没有解决问题:
那就是在播放模式没有设置正确:
在这里我使用的是AudioTask播放语音,初始化AudioTask设置如下:
int