Avisos

Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 10/08/12, 13:45:07
Avatar de frank1986
frank1986 frank1986 no está en línea
Miembro del foro
Mensajes: 106
 
Fecha de registro: jun 2009
Mensajes: 106
Modelo de smartphone: Samsung Galaxy S3
Tu operador: Vodafone
Mencionado: 0 comentarios
Tagged: 0 hilos
Detectar y reproducir sonidos

Hola chic@s,

Veréis he creado mi primer juego, el cual, en una parte de él, cada vez que pulsas la pantalla se reproduce un sonido. Está realizado sobre la clase SurfaceView (por si es de importancia saber eso). Bueno, el caso es que consigo que se reproduzca y todo va perfectamente, pero ahora una vez que he terminado el juego me he dado cuenta que el sonido del juego se reproduce absolutamente siempre, es decir, aunque el móvil esté en silencio o sólo en vibración, el sonido se escucha. Yo pensaba que era por el móvil pero no, no lo es y es por eso por lo que os pregunto, cómo detecto si el sonido del móvil está habilitado o no para reproducir sonidos????? Si me ha ocurrido poner en las opciones del juego o algún otro lado lo típico de "Silenciar/Reproducir sonidos" pero me niego si hay una solución para detectar si está habilitado o no en el móvil ..... Por si os sirve, ésta forma es la que utilizo para reproducir los sonidos, por si no lo estoy haciendo bien:

Creo el sonido:

Código:
sonido = new SoundPool(10, AudioManager.STREAM_MUSIC,0);
mi_sonido= sonido.load(context, R.raw.audio, 1);
Y cuando lo necesito lo reproduzco así:

Código:
sonido.play(mi_sonido, 1.0f, 1.0f, 0, 0, 1.5f);
No se si lo que quiero es porque no he echo bien lo anterior, porque lo hice de ejemplos en ingles y demás ......

Un saludo.
Responder Con Cita


  #2  
Viejo 10/08/12, 13:59:40
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Te lo copio-pego de mi cuatro en raya, que a su vez debí copiar de algún sitio... Con esto el volumen es el volumen que haya configurado, respetando la configuración del usuario.

Código:
     
		AudioManager mgr = (AudioManager) c.getSystemService(Context.AUDIO_SERVICE);
		float streamVolumeCurrent = mgr
				.getStreamVolume(AudioManager.STREAM_MUSIC);
		float streamVolumeMax = mgr
				.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
		float volume = streamVolumeCurrent / streamVolumeMax;

		/* Play the sound with the correct volume */
		if (soundPool != null) soundPool.play(soundPoolMap.get(sound), volume, volume, 1, 0, 1f);
Responder Con Cita
  #3  
Viejo 11/08/12, 15:40:32
Avatar de frank1986
frank1986 frank1986 no está en línea
Miembro del foro
Mensajes: 106
 
Fecha de registro: jun 2009
Mensajes: 106
Modelo de smartphone: Samsung Galaxy S3
Tu operador: Vodafone
Mencionado: 0 comentarios
Tagged: 0 hilos
Pues se me sigue escuchando siempre :S, aunque el sonido esté quitado y sólo en vibración. A ver he puesto el código que has puesto en el constructor (onCreate) y guardo el volumen en una variable privada global, luego cuando necesito reproducir pues utilizo el código para reproducir el sonido con esa variable de volumen, pero nada .... se escucha siempre ....

¿Alguna idea?
Responder Con Cita
  #4  
Viejo 11/08/12, 15:44:35
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
El volumen tienes que calcularlo antes de reproducir cada sonido, si lo haces solo en el onCreate ha podido cambiar unas cuantas veces el volumen y no te enteras.
Responder Con Cita
  #5  
Viejo 11/08/12, 18:42:13
Avatar de frank1986
frank1986 frank1986 no está en línea
Miembro del foro
Mensajes: 106
 
Fecha de registro: jun 2009
Mensajes: 106
Modelo de smartphone: Samsung Galaxy S3
Tu operador: Vodafone
Mencionado: 0 comentarios
Tagged: 0 hilos
Despiste mio :S. Pero de todas formas, si abro la aplicación con el sonido quitado, no se debería de escuchar nada, pero se escucha perfectamente.
Responder Con Cita
  #6  
Viejo 11/08/12, 18:46:18
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Estás seguro de tener el volumen multimedia en silencio? El volumen de llamada o la vibración no afectan.
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 22:07:11 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007