我们的应用程序正在使用MediaPlayer播放声音效果。我们希望当用户将手机静音后(例如,将其设置为振动或静音且未插入耳机)不播放。
默认情况下,它不遵循系统状态:无论播放声音。我可以使用AudioManager.getRingerMode()
停止播放声音,但是(a)感觉像是骇客,(b)不能处理耳机保护套-如果我正在听耳机上的音乐但使铃声静音了,想播放声音。
有没有办法做到这一点?
最佳答案
在我看来,您必须使用getRingerMode()
和isWiredHeadsetOn()
的逻辑组合来相应地暂停或静音音频。
注意:由于某些原因,在API 14中不赞成使用isWiredHeadsetOn()
,但它仍然是检查是否已连接耳机的唯一方法。文档状态:
Use only to check is a headset is connected or not.
Read about that here.
因此,是的,有一种方法可以做到这一点,尽管我不知道这是否正是您想要的。
关于android - 使用MediaPlayer尊重系统静音状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19282865/