我正在使用MediaPlayer播放声音效果。但是,当DnD(请勿打扰)打开时,它仍会播放声音。
这是我的代码:
public static void playSound(Context context, @RawRes int soundId)
{
MediaPlayer mp = MediaPlayer.create(context, soundId);
mp.start();
mp.setOnCompletionListener(mediaPlayer -> {
mp.release();
});
}
我尝试像这样设置音频流类型,但是我的声音根本不会播放:
mp.setAudioStreamType(AudioManager.STREAM_NOTIFICATION);
如何初始化媒体播放器,以便我的声音执行以下操作:
目前,当DnD处于完全静音模式时,声音仅被静音。
我现在唯一能想到的就是检索DnD设置,只有当它关闭时才播放声音。但这似乎更像是对我的解决方案。
您可以像这样首先获得Do not disturb
模式的状态
try {
Settings.Global.getInt(getContentResolver(), "zen_mode"); // this return an int
} catch (Settings.SettingNotFoundException e) {
e.printStackTrace();
}
该语句返回一个可以像这样使用的int值
现在你要做的只是一个简单的if
声明,你可以相应地播放或停止音频。
你可以像这样停止MediaPlayer
mp.stop();