我正在使用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设置,并且仅在声音关闭时播放声音。但这对我来说似乎是一个变通方法。
答案 0 :(得分:0)
您可以像这样首先获取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();