android - 使用MediaPlayer尊重系统静音状态

标签 android audio

我们的应用程序正在使用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/

相关文章:

android - 如何解决 AAPT2 错误?

Android Vpn 服务 - 写入 vpn 接口(interface)时出错

java - 在Nox(Android模拟器)中运行java .class/.jar文件

android - 有人可以解释一下 TrafficStats 如何在 Android 操作系统中发挥其魔力吗?

iPhone设置音量以仅播放应用程序的声音

c# - Unity麦克风无法正常工作

qt - 在 Qt 中执行 ffmpeg 以裁剪音频

objective-c - AVAudioPlayer 不会重复播放

android - 隐藏状态栏不适用于所有设备

audio - 实现小组,低延迟,一对多音频广播的最简单方法是什么