2012-02-11 20 views
9

Estoy en proceso de desarrollar una aplicación de Android.Android SDK. AudioManager. setStreamVolume max int valor

he sido capaz de establecer con éxito el volumen del altavoz usando:

AudioManager audioManager = (Audiomanager)getSystemService(Context.AUDIO_SERVICE); 

audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, sb2value, 0); 

La pregunta es, ¿cuál es el valor máximo que int "sb2value" puede ser?

FYI, "sb2value" es un valor de un control deslizante. A medida que el usuario se desliza, el volumen de audio cambia.

Permito que el valor del control deslizante pase de 0 a 100. ¿Se puede usar 100 como el segundo valor del argumento o es el límite inferior, como 20?

Gracias,

P.S. La mayoría de mis preguntas son iguales porque soy nuevo, entiendo que cada pregunta necesita una nueva publicación, y tengo muchos problemas para un programa simple.

Respuesta

15

para obtener el volumen máximo que puede establecer sb2value:

sb2value = audioManager.getStreamMaxVolume(audioManager.STREAM_MUSIC); 
+1

Esto es lo que he hecho. Quiero que el volumen tenga la capacidad de ser variado entre 0 y 100. Mantuve mi variable sb2value. Creo una segunda variable y obtengo el número máximo de volumen permitido usando su función, lo divido entre 100 (mi valor máximo deseado) y luego lo multiplico por el valor actual en el que está sb2value. Esto me permite variar virtualmente el volumen de cualquier teléfono de mínimo a máximo con incrementos intermedios. –

+0

Pero no recuerdo si las INT pueden contener números decimales. –

+0

Casting, de C++ ... sb2value ya es un int. Quise decir que la respuesta resultante podría terminar en un decimal. si sb2value = 100, 10 (StreamMax)/100 = 0.1. Está bien, sin embargo. –

3

En lugar de codificar duro el valor máximo de su deslizador (o SeekBar si está utilizando eso), establece el atributo Max para audioManager.getStreamMaxVolume(audioManager.STREAM_MUSIC) Esto funcionará mejor porque diferentes dispositivos pueden tener diferentes límites de volumen.

En cuanto al límite real, me imagino que no está por encima de 10.