0

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

默认情况下,它不尊重系统状态:无论如何都会播放声音。我可以用它AudioManager.getRingerMode()来停止声音播放,但是 (a) 感觉就像是 hack,并且 (b) 它不能处理耳机盒——如果我在耳机上听音乐但已使铃声静音,我'我喜欢播放的声音。

有没有办法做到这一点?

4

1 回答 1

1

在我看来,您必须将逻辑与getRingerMode()isWiredHeadsetOn()相应地暂停或静音音频。

注意:isWiredHeadsetOn()由于某种原因在 API 14 中被弃用,但仍然是检查耳机是否连接的唯一方法。文档状态:

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

在此处阅读相关内容。

所以是的,有一种方法可以做到这一点,虽然我不知道它是否正是你想要的。

于 2013-10-09T21:50:45.430 回答