Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我们的应用使用 MediaPlayer 播放音效。我们希望在用户将手机静音(例如,将其设置为振动或静音且未插入耳机)时不要播放这些音乐。
默认情况下,它不尊重系统状态:无论如何都会播放声音。我可以用它AudioManager.getRingerMode()来停止声音播放,但是 (a) 感觉就像是 hack,并且 (b) 它不能处理耳机盒——如果我在耳机上听音乐但已使铃声静音,我'我喜欢播放的声音。
AudioManager.getRingerMode()
有没有办法做到这一点?
在我看来,您必须将逻辑与getRingerMode()并isWiredHeadsetOn()相应地暂停或静音音频。
getRingerMode()
isWiredHeadsetOn()
注意:isWiredHeadsetOn()由于某种原因在 API 14 中被弃用,但仍然是检查耳机是否连接的唯一方法。文档状态:
仅用于检查是否连接了耳机。
在此处阅读相关内容。
所以是的,有一种方法可以做到这一点,虽然我不知道它是否正是你想要的。