我们的应用正在使用MediaPlayer播放音效。我们希望当用户使手机静音时不要播放(例如,将其设置为振动或静音而不插入耳机)。
默认情况下,它不符合系统状态:声音无论如何都会播放。我可以使用AudioManager.getRingerMode()
来停止声音播放,但是(a)感觉就像是黑客,(b)它不能处理耳机外壳 - 如果我在耳机上听音乐但是已经静音了铃声,我想要播放的声音。
有办法做到这一点吗?
答案 0 :(得分:1)
在我看来,您必须使用getRingerMode()
和isWiredHeadsetOn()
的逻辑组合来相应地暂停或静音音频。
注意:在API 14中出于某种原因不推荐isWiredHeadsetOn()
,但仍然是检查耳机是否已连接的唯一方法。文档声明:
仅用于检查耳机是否已连接。
所以是的,有办法做到这一点,虽然我不知道它是不是你正在寻找的。 p>