Я создаю приложение Будильник.Я перечисляю все доступные мелодии звонка (не только стандартные сигналы будильника).Когда пользователь щелкает тональный сигнал в списке, я играю его с помощью MediaPlayer.Во время этого я также хотел бы иметь возможность регулировать громкость будильника с помощью кнопок громкости (на телефоне).Но когда я нажимаю эти кнопки, я настраиваю громкость носителя, а не громкость будильника.
Есть ли способ обойти это?
Вот код, который я использую для отображения тонов
private void chooseTone(final ArrayList<String> tones, final ArrayList<String> paths) {
//final String lastRingtone = tuneName.getText().toString();
//int i = tones.indexOf(lastRingtone);
int i ;
try {
i = paths.indexOf(crt.tune);
} catch (NullPointerException ex) {
i = -1;
}
final AlertDialog alert = new AlertDialog.Builder(this).setTitle("Ringtone").
setSingleChoiceItems(tones.toArray(new String[]{}), i, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialogInterface, int index) {
String currentPath = paths.get(index);
try {
if (mp != null)
mp.stop();
mp = new MediaPlayer();
mp.setDataSource(currentPath);
mp.prepare();
mp.seekTo(0);
mp.start();
} catch (Exception ex) {
}
selectedRingtoneIndex = index;
}
}).create();
alert.setButton(AlertDialog.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialogInterface, int i) {
tuneName.setText(tones.get(selectedRingtoneIndex));
//uri = Uri.parse(paths.get(selectedRingtoneIndex));
crt.tune = paths.get(selectedRingtoneIndex);
try {
mp.stop();
} catch (Exception ex) {}
}
});
alert.setButton(AlertDialog.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialogInterface, int i) {
try {
mp.stop();
} catch (Exception ex) {}
}
});
alert.show();
}