Sto scrivendo un'app per Android che alza il volume e suona una canzone per 45 secondi e poi si ferma. Funziona benissimo, ma posso solo far alzare il volume fino al 50%, c'è un modo per aumentare il volume fino al 100% usando setVolume()?Come girare il volume a max a livello di programmazione su Android?
Questo è il mio codice:
final MediaPlayer mp = MediaPlayer.create(context, R.raw.sound_file_1);
//plays eye of the tiger for 45 seconds
if (messages.contains("MUSIC ONLY")){
//turn up the volume
mp.setVolume(20, 20);
mp.start();
//play ring tone for 45 seconds
new Timer().schedule(new TimerTask() {
@Override
public void run() {
mp.stop();
}
}, 45000);
}
Sembra terribilmente odioso. Posso capire perché l'API potrebbe limitare il tuo volume al 50%. –
In ogni caso: http://sagistech.blogspot.com/2010/07/setting-android-volume-programmatically.html e il duplicato collegato nella tua domanda, sopra. In sostanza, si desidera utilizzare la classe AudioManager, non la classe MediaPlayer. –
@RobertHarvey: se questa limitazione del 50% è vera, suppongo che ciò sia dovuto alla protezione dell'udito. Questo è quello che succede quando imposti il volume in stock Android: ti consente di andare al 50%, poi ti chiede se sei sicuro di voler andare più in alto in quanto potrebbe danneggiare l'udito. ** Modifica: ** [dai documenti] (http://developer.android.com/reference/android/media/MediaPlayer.html): 'Questa API è consigliata per bilanciare l'output di flussi audio all'interno di un'applicazione. - Quindi se il volume di sistema è al 50%, 'MediaPlayer.setVolume()' non andrà al di sopra di esso. – kamituel