J'écris une application pour Android qui augmente le volume et joue une chanson pendant 45 secondes, puis s'arrête. Cela fonctionne très bien, mais je ne peux obtenir que 50% du volume. Y a-t-il un moyen de faire passer le volume à 100% en utilisant setVolume()?Comment faire pour basculer le volume au maximum par programmation sur Android?
Ceci est mon code:
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);
}
Cela semble terriblement désagréable. Je peux voir pourquoi l'API pourrait vous limiter à 50% du volume. –
Dans tous les cas: http://sagistech.blogspot.com/2010/07/setting-android-volume-programmatically.html, et le doublon lié dans votre question, ci-dessus. Fondamentalement, vous voulez utiliser la classe AudioManager, pas la classe MediaPlayer. –
@RobertHarvey - Si cette limite de 50% est effectivement vraie, je suppose que c'est à cause de la protection auditive. C'est ce qui se passe lors du réglage du volume en stock Android - il vous permet d'aller à 50%, puis vous demande si vous êtes sûr que vous voulez aller plus haut car cela peut endommager votre audition. ** Edit: ** [de la documentation] (http://developer.android.com/reference/android/media/MediaPlayer.html): 'Cette API est recommandée pour équilibrer la sortie des flux audio dans une application. - donc si le volume du système est à 50%, 'MediaPlayer.setVolume()' ne dépassera pas le volume. – kamituel