我正在尝试为 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();
}
我似乎找不到任何其他直接播放实际闹钟音量声音的方法。网上的一切看起来都只是播放铃声。
如果有人对使用闹钟音量有任何见解,我将非常感激。
最佳答案
有点旧的线程,但也许这会对将来的某人有所帮助。
我目前正在自己制作闹钟,我正在这样做:
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 (...) {
...
}
它对我来说工作得很好。
关于Android闹钟声音使用闹钟音量设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44080918/