Changer le volume des médias sous Android?

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

setVolumeControlStream(AudioManager.STREAM_MUSIC); 

Mais ayez une barre de recherche et voulez changer le volume de média, pas le volume de sonnerie.

Donc, quelqu’un peut-il me montrer comment changer le volume de média à onCreate() et corriger la barre de recherche plus tard.

La bonne méthode à utiliser serait setStreamVolume sur votre AudioManager . Cela pourrait ressembler à 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 bip lors du réglage du volume afin que l’utilisateur puisse entendre le résultat. Le drapeau pour cela serait AudioManager.FLAG_PLAY_SOUND .

Vous pouvez utiliser AudioManager.FLAG_SHOW_UI si vous ne souhaitez pas lire de son mais afficher un toast avec la valeur actuelle. L’utilisation doit avoir un retour. Peu importe si elle est audible ou visuelle.

Pour obtenir la valeur maximale valide pour le stream donné, il vous suffit d’appeler getStreamMaxVolume() sur le AudioManager et de récupérer un entier représentant … ainsi la valeur maximale valide pour le volume.

 private AudioManager audio; 

Inside 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; // Update based on @Rene comment below: return super.onKeyDown(keyCode, event); } } 

Vous pouvez utiliser le code suivant pour gérer Volume à l’aide de SeekBar:

 AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); SeekBar sbVolumeBooster = (SeekBar) findViewById(R.id.sbVolumeBooster); sbVolumeBooster.setMax(audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)); sbVolumeBooster.setProgress(audioManager.getStreamVolume(AudioManager.STREAM_MUSIC)); sbVolumeBooster.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar arg0) { } @Override public void onStartTrackingTouch(SeekBar arg0) { } @Override public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) { audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0); // 0 can also be changed to AudioManager.FLAG_PLAY_SOUND } }); 

Donner un 0 dans les drapeaux évite d’avoir un indicateur visuel et audio. C’est bien lorsque vous implémentez votre propre barre et indicateur audio et que vous ne voulez pas que Android ajoute quelque chose.

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

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