54 votes

Changer le volume du média dans Android?

Puis-je changer le volume du média? et comment? Je l'ai utilisé jusqu'à présent:

 setVolumeControlStream(AudioManager.STREAM_MUSIC);
 

Mais ayez une barre de recherche et souhaitez modifier le volume du support, pas le volume de la sonnerie.

Alors, quelqu'un peut-il me montrer comment modifier simplement le volume de média à onCreate() et que je répare la barre de recherche plus tard.

90voto

Octavian Damiean Points 20620

La bonne méthode à utiliser serait setStreamVolume sur votre AudioManager. Il pourrait ressemble à ceci

AudioManager audioManager = 
    (AudioManager)getSystemService(Context.AUDIO_SERVICE);

audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
                             [int value],
                             [if desired a flag]);

Un exemple d'utilisation de l'indicateur est d'obtenir le signal sonore lorsque le réglage du volume permet à l'utilisateur d'entendre le résultat. Le drapeau qui serait AudioManager.FLAG_PLAY_SOUND.

Vous pouvez utiliser AudioManager.FLAG_SHOW_UI si vous ne voulez pas jouer un son, mais afficher un toast avec la valeur actuelle. L'utilisation a pour obtenir une rétroaction tho. N'a pas d'importance si elle est visuelle ou sonore.

Pour obtenir le maximum de valeur valide pour le stream vous appelez getStreamMaxVolume() sur le AudioManager et obtenir un entier qui représente ... ainsi le maximum de valeur valide pour le volume.

38voto

trgraglia Points 3196
private AudioManager audio;

À l'intérieur de onCreate:

audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

Remplacer onKeyDown:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch (keyCode) {
    case KeyEvent.KEYCODE_VOLUME_UP:
        audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
        return true;
    case KeyEvent.KEYCODE_VOLUME_DOWN:
        audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
        return true;
    default:
        return false;
    }
}

4voto

Yoni Points 9

Donner une 0 - dans les drapeaux évite d'avoir un visuel et audio de l'indicateur . C'est bon lorsque vous implémentez votre propre barre audio et indicateur et vous ne voulez pas android pour ajouter quoi que ce soit.

1voto

Computerish Points 5219

Utiliser adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, flags);

http://developer.android.com/reference/android/media/AudioManager.html#adjustStreamVolume(int, int, int)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X