2010-03-29 15 views
6

Para que el usuario pueda controlar el volumen, mi aplicación Android tiene un menú que consiste en un control deslizante que proporciona valores int de 0 a 10, cuando se arrastran. Después de obtener un valor, debo configurar el volumen al valor correspondiente elegido por el usuario, y bueno, esta es la parte que no sé para implementar y me gustaría encontrar al respecto.ajustar el volumen de una aplicación Android

Respuesta

11

utilizar la clase AudioManager. En esencia, el código es el siguiente:

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
audioManager.setStreamVolume(streamType, volume, flags); 

El problema es que el volumen del dispositivo no es necesariamente mapeado de 0 a 10 y cuando tenga en su deslizador. En mi emulador, es de 0 a 7. Así que lo que hay que hacer es getStreamMaxVolume(...) saber lo que su máxima es, y luego calcular su valor como una fracción de eso. A modo de ejemplo, si el usuario elige el volumen 8 de los 10, lo que equivale a 0,8 * 7 = 5,6, lo que se debe redondear a 6 de 7.

La "corriente" se refiere a cosas como el volumen del timbre, volumen de notificación , volumen de la música, etc. Si desea cambiar el volumen del timbre, que necesita para asegurarse de que todos sus comandos tienen AudioManager.STREAM_RING como el streamType.

Cuestiones relacionadas