¿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.

Así que alguien puede mostrarme cómo cambiar el volumen de los medios en onCreate() y arreglar el buscador más tarde.

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)

  • Detectar o la latencia aproximada de Bluetooth en Android (reproducción de audio)
  • Etiqueta de audio en el dispositivo Android
  • Decodificación de datos de audio codificados (MP3, etc) en Android sin reproducirlo
  • ¿Es posible tener acceso a la señal del altavoz en Android?
  • Aplicación de streaming de radio en línea para Android
  • Cómo utilizar el filtro Band Pass (18Khz a 22Khz) en Android
  • Android de programación de audio pesadilla - soundpool, audiotrack arrghh?
  • Android 4.0.4 WebView MediaPlayer Error (1, -2147483648) Uso de <audio> Etiqueta y archivo de activos locales
  • Cómo reproducir un archivo de audio en una llamada de voz en android
  • ¿Qué es SLDataLocator_AndroidSimpleBufferQueue (Android 4.3)?
  • Quiero comprobar el volumen de la voz en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.