2011-01-31 8 views
4

Je fais une application de musique simple pour Android. Cela fonctionne très bien, mais quand je veux changer le volume multimédia je ne peux pas le faire directement à partir de l'application. Si je clique sur le bouton de volume haut/bas, cela change le volume des appels téléphoniques, donc je devrais aller à une autre application (jeu) et en cliquant à nouveau sur ces boutons cela change le volume multimédia. Connaissez-vous un moyen de sélectionner ces touches de volume qui fonctionnent uniquement pour le volume multimédia dans mon application plutôt que pour le téléphone entier?Volume multimédia au lieu du volume du téléphone dans Android

Merci beaucoup

Répondre

2

Je ne sais pas s'il existe une méthode par défaut, mais vous pouvez toujours le faire:

public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    if ( keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || 
      keyCode == KeyEvent.KEYCODE_VOLUME_UP) { 
     //magic goes here 
    } else { 
     return super.onKeyDown(keyCode, event); 
    } 
} 
+0

Sur la plupart des téléphones que j'ai testés, leur valeur de volume n'est pas correctement mise à jour jusqu'à ce que 'onKeyUp' ... vous devriez gérer cette méthode à la place – yano

1

La classe intégrée que vous recherchez est AudioManager. Je crois que la méthode particulière dont vous avez besoin est setStreamVolume. Le type de flux va être AudioManager.STREAM_MUSIC Vous pouvez lire à ce sujet [ici] [1].

Editer: Je suppose que je ne peux pas faire un lien hypertexte .... alors here est le lien vers la classe de premier niveau ... étrange.

[1]: http://developer.android.com/reference/android/media/AudioManager.html#setStreamVolume(int, int, int)

Questions connexes