我正在尝试为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();
}
我似乎无法找到任何其他直接播放实际闹钟音量的方法。网上的所有内容都只是在播放铃声。
如果有人对使用闹钟音量有任何了解,我将非常感激。
答案 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 (...) {
...
}
这对我来说很好。