当“请勿打扰”打开时,Android不会播放声音效果

问题描述 投票:1回答:1

我正在使用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 off:玩
  • DnD总沉默:不玩
  • DnD警报:不玩
  • 仅限DnD优先:不玩

目前,当DnD处于完全静音模式时,声音仅被静音。

我现在唯一能想到的就是检索DnD设置,只有当它关闭时才播放声音。但这似乎更像是对我的解决方案。

android android-mediaplayer android-audiomanager silent android-sound
1个回答
0
投票

您可以像这样首先获得Do not disturb模式的状态

 try {
        Settings.Global.getInt(getContentResolver(), "zen_mode"); // this return an int
    } catch (Settings.SettingNotFoundException e) {
        e.printStackTrace();
    }

该语句返回一个可以像这样使用的int值

  • 0 - 如果DnD关闭。
  • 1 - 如果DnD打开 - 仅限优先
  • 2 - 如果DnD打开 - 总沉默
  • 3 - 如果DnD打开 - 仅警报

现在你要做的只是一个简单的if声明,你可以相应地播放或停止音频。

你可以像这样停止MediaPlayer

mp.stop();
© www.soinside.com 2019 - 2024. All rights reserved.