使用MediaPlayer表彰系统静音状态

时间:2013-10-09 21:13:40

标签: android audio

我们的应用正在使用MediaPlayer播放音效。我们希望当用户使手机静音时不要播放(例如,将其设置为振动或静音而不插入耳机)。

默认情况下,它不符合系统状态:声音无论如何都会播放。我可以使用AudioManager.getRingerMode()来停止声音播放,但是(a)感觉就像是黑客,(b)它不能处理耳机外壳 - 如果我在耳机上听音乐但是已经静音了铃声,我想要播放的声音。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:1)

在我看来,您必须使用getRingerMode()isWiredHeadsetOn()的逻辑组合来相应地暂停或静音音频。

注意:在API 14中出于某种原因不推荐isWiredHeadsetOn(),但仍然是检查耳机是否已连接的唯一方法。文档声明:

  

仅用于检查耳机是否已连接。

Read about that here.

所以是的,有办法做到这一点,虽然我不知道它是不是你正在寻找的。