问题的 Headers 可能看起来重复,但我的问题有时是问题并导致故障 . 插入耳机时,我使用以下代码播放扬声器 .
AudioManager audioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.STREAM_MUSIC);
audioManager.setSpeakerphoneOn(true);
if(! Globals.mediaPlayer.isPlaying()){
Globals.mediaPlayer.start();
}
上面的代码通过以下方式播放音频:1 . 很少次,它播放完美 . 2.大多数时候,它在背景中播放循环声 . 几次,它什么都不玩 .
插入耳机时似乎系统声音播放没有错误 . 例如 - 设置铃声正确播放相应的铃声,没有任何故障 . 请帮我理解如何通过插入耳机的扬声器正确播放声音 .
2 回答
我有一个类似的问题,我解决了,创建一个新的媒体播放器,如果它没有播放,并将媒体播放器流类型设置为音频管理器的相同模式,尝试这样的事情:
就我而言,我使用的是AudioManager.MODE_IN_COMMUNICATION . 另外一定要设置权限
在AndroidManifest.xml中
稍微研究一下(可能更多),我找到了解决方案 .
我们应该创建自己的MediaPlayer实例并为该实例设置音频流类型,而不是更改AudioManager的设置 . 我们可以将其设置为STREAM_RING以将音频路由到耳机和扬声器 .
然后,您可以收听onPreparedListener以启动音频 . 请查看博客Route audio through speaker in Android以获得更好的图片 .