Звук будильника Android с использованием настройки громкости будильника?
Я пытаюсь создать собственный тип будильника для 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 ответ
Несколько старая тема, но, возможно, это поможет кому-то в будущем.
Я сейчас работаю над будильником и делаю это:
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 (...) {
...
}
Это работает нормально для меня.