【问题标题】:Troubles play sound in silent mode on Android在 Android 上以静音模式播放声音时出现问题
【发布时间】:2013-03-12 19:25:49
【问题描述】:

我正在编写一个安卓应用程序来简单地播放警报,无论手机处于什么模式,即使它处于静音模式。

我找到了这个question 并使用答案中的代码来覆盖当前的音量状态。我的代码如下所示:

Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
    if (alert == null){
        // alert is null, using backup
        alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        if (alert == null){
            // alert backup is null, using 2nd backup
            alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
    }
}
ringtone = RingtoneManager.getRingtone(getApplicationContext(), alert);

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int volume = audioManager.getStreamVolume(AudioManager.STREAM_ALARM);
if(volume == 0){
    volume = audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM);
}
audioManager.setStreamVolume(AudioManager.STREAM_ALARM, volume,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);

if(ringtone != null){
    ringtone.play();
}

通过调试,我的问题似乎从这一行开始:

int volume = audioManager.getStreamVolume(AudioManager.STREAM_ALARM);

因为我的手机在静音模式下似乎返回 4,在最大音量时返回 7。我不知道这是不是,它应该返回什么。我只是假设如果手机处于静音模式,它会返回 0。

谁能指出我正确的方向?

【问题讨论】:

  • 您的误解是静音模式意味着...静音。如题,没有声音。你知道电影院里的那些人,我们终于教他们如何让他们的手机振动了吗?
  • @RobertHarvey 我知道静音功能是如何工作的……我想在闹钟响起时覆盖静音模式。但它不适用于此question 答案中的代码在我用来运行应用程序的手机上不起作用。
  • 对不起。我没有意识到你只是为自己编写这个应用程序。
  • 将问题编辑得更具体。

标签: android audio alarm ringtone silent


【解决方案1】:

自己回答了这个问题,花更多时间深入阅读文档。

Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
    if (alert == null){
        // alert is null, using backup
        alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        if (alert == null){
            // alert backup is null, using 2nd backup
            alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
    }
}
ringtone = RingtoneManager.getRingtone(getApplicationContext(), alert);

设置铃声后,我必须设置铃声的流类型:

    ringtone.setStreamType(AudioManager.STREAM_ALARM);

【讨论】:

    猜你喜欢
    • 2015-12-17
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多