subir - Cambiar el volumen de medios en Android?
subir volumen android codigo (5)
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.
¿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.
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
}
});
Utilice adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, flags);
http://developer.android.com/reference/android/media/AudioManager.html#adjustStreamVolume(int , int, int)
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);
}
}