使用闹钟音量设置的Android闹钟声音?

时间:2017-05-20 01:09:15

标签: android audio alarmmanager alarm ringtonemanager

我正在尝试为Android构建一个自定义类型的闹钟,我已经设置了一个设置页面,允许用户选择他们想要使用的闹钟声音。选择它之后,它就会被放入SharedPreferences中,这很容易。

我遇到的问题是如何播放他们选择的闹钟,同时使用RingtoneManager.TYPE_ALARM,以便音量基于系统警报声而不是系统通知音量。

我尝试了多种方法来让它使用警报音量,但似乎没有什么可以做的。

1

Uri currentRingtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
currentRingtone = RingtoneManager.getRingtone(context, currentRingtoneUri);
currentRingtone.play();

2

SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
String syncConnPref = sharedPref.getString("alarm_new_alarm_sound", null);

if (syncConnPref != null) {
  RingtoneManager.getRingtone(this, Uri.parse(syncConnPref)).play();
}

我似乎无法找到任何其他直接播放实际闹钟音量的方法。网上的所有内容都只是在播放铃声。

如果有人对使用闹钟音量有任何了解,我将非常感激。

1 个答案:

答案 0 :(得分:2)

有些旧帖,但也许这将有助于将来的某人 我现在正在制作一个闹钟,我正在这样做:

int audioFile = prefs.getInt("audioFile", R.raw.yourFile);
MediaPlayer mp = new MediaPlayer();

try {
    mp.reset();

    mp.setDataSource(PlayerActivity.this,    
    Uri.parse("android.resource://your.package.here/" + audioFile));

    mp.setAudioStreamType(STREAM_ALARM);
    mp.setLooping(true);
    mp.prepare();
    mp.start();
}

catch (...) {
    ...
}

这对我来说很好。