¿Cambiar el volumen de medios en Android?
¿Puedo cambiar el volumen de los medios? ¿y cómo? He utilizado esto hasta ahora:
setVolumeControlStream(AudioManager.STREAM_MUSIC);
Pero tienen un buscador y quieren cambiar el volumen de los medios, no el volumen del timbre.
- API de audio de bajo nivel para Android
- Compruebe si los auriculares están enchufados
- Cómo calcular la frecuencia de sonido en android?
- Cómo obtener una lista de reproductores multimedia instalados
- Reproducir varias canciones con MediaPlayer al mismo tiempo: solo una está jugando
Así que alguien puede mostrarme cómo cambiar el volumen de los medios en onCreate()
y arreglar el buscador más tarde.
- Android Superpowered SDK Grabación y reproducción simultáneamente
- Límites de efectos de audio de Android a 5 bandas
- Android Sonido: seekTo y setPlaybackRate
- Android: ¿puedo silenciar las aplicaciones de audio que se están reproduciendo actualmente?
- ¿Puede Android MediaPlayer reproducir audio en un archivo comprimido?
- ¿Cómo detener los sonidos de otras aplicaciones?
- ¿Cómo grabo simultáneamente el audio de cada micrófono en una matriz de micrófonos en un buffer separado en Android?
- AudioTrack en modo de transmisión MODE_STREAMING
El método correcto para usar sería setStreamVolume en su AudioManager
. Podría parecer esto
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 al ajustar el volumen para que el usuario pueda escuchar el resultado. La bandera para eso sería AudioManager.FLAG_PLAY_SOUND
.
Puede utilizar AudioManager.FLAG_SHOW_UI
si no desea reproducir un sonido pero mostrar un brindis con el valor actual. El uso tiene que conseguir una respuesta tho. No importa si es audible o visual.
Para obtener el valor máximo válido para la corriente dada, sólo tienes que llamar a getStreamMaxVolume()
en el AudioManager
y obtener un número entero que represente … bien el valor máximo válido para el volumen.
private AudioManager audio;
Inside onCreate:
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; } }
Puede utilizar el código siguiente para controlar el volumen utilizando un 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 } });
Dar un 0 – en las banderas evita obtener un indicador visual y audio. Eso es bueno cuando implementas tu propia barra de audio e indicador y no quieres que android agregue nada.
Use adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, flags);
http://developer.android.com/reference/android/media/AudioManager.html#adjustStreamVolume(int , int, int)
- Vista de Android que desaparece cuando se sale de los padres
- Cómo crear efecto de rizo en un diseño sencillo