版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
最近项目中出现一个问题,部分华为手机,乐视手机切换到听筒模式后,听不到声音的现象,搜索了好多答案,发现都是说设置模式不对,试了好多也没有解决掉。最后发现应该是重新播放的方式不对,在一部分手机上重新播放不兼容。
这是开始的代码,切换到听筒模式时调用:VoicePlayer.setAudioManagerMode(AudioManager.MODE_IN_CALL); ((ChatActivity)context).setSpeakerphoneOn(false); VoicePlayer.player.seekTo(0);//重新播放public voidsetSpeakerphoneOn(booleanon) {try{ AudioManager audioManager = (AudioManager) AndroidUtils.appCtx().getSystemService(Context.AUDIO_SERVICE); //播放音频流类型 setVolumeControlStream(AudioManager.STREAM_VOICE_CALL); //获得当前类 Class audioSystemClass = Class.forName("android.media.AudioSystem"); //得到这个方法 Method setForceUse = audioSystemClass.getMethod("setForceUse", int.class, int.class); if(on) { audioManager.setMicrophoneMute(false); audioManager.setSpeakerphoneOn(true); audioManager.setMode(AudioManager.MODE_NORMAL); }else{audioManager.setSpeakerphoneOn(false); audioManager.setMode(AudioManager.MODE_NORMAL); setForceUse.invoke(null,0,0); audioManager.setMode(Audi