Cambiar el volumen de medios en Android?

¿Puedo cambiar el volumen de los medios? ¿y cómo? Lo usé hasta ahora:

setVolumeControlStream(AudioManager.STREAM_MUSIC); 

Pero tiene una barra de búsqueda y desea cambiar el volumen de medios, no el volumen del timbre.

Entonces, ¿alguien puede mostrarme cómo cambiar el volumen de medios en onCreate() y luego arreglar la barra de búsqueda?

El método correcto para usar sería setStreamVolume en su AudioManager . Podría ser así

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

Un ejemplo de uso de la bandera es obtener el pitido cuando se configura el volumen para que el usuario pueda escuchar el resultado. La bandera para eso sería AudioManager.FLAG_PLAY_SOUND .

Puede usar AudioManager.FLAG_SHOW_UI si no desea reproducir un sonido pero muestra un brindis con el valor actual. El uso tiene que obtener una retroalimentación aunque. No importa si es audible o visual.

Para obtener el valor máximo válido para la transmisión dada, simplemente llame a getStreamMaxVolume() en el AudioManager y obtenga un entero que represente … así el valor válido máximo para el volumen.

 private AudioManager audio; 

Dentro deCreate:

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

Anular 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); } } 

Puede usar el siguiente código para manejar el Volumen usando una Barra de Seek:

 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 } }); 

Dar un 0 – en las banderas evita obtener un indicador visual y de audio. Eso es bueno cuando implementa su propia barra de audio e indicador y no desea que Android agregue nada.

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

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