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

Respuesta
 
Herramientas
  #1  
Viejo 10/08/12, 13:45:07
Array

[xs_avatar]
frank1986 frank1986 no está en línea
Miembro del foro
 
Fecha de registro: jun 2009
Mensajes: 106
Modelo de smartphone: Samsung Galaxy S3
Tu operador: Vodafone
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
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

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);
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #3  
Viejo 11/08/12, 15:40:32
Array

[xs_avatar]
frank1986 frank1986 no está en línea
Miembro del foro
 
Fecha de registro: jun 2009
Mensajes: 106
Modelo de smartphone: Samsung Galaxy S3
Tu operador: Vodafone
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
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

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.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #5  
Viejo 11/08/12, 18:42:13
Array

[xs_avatar]
frank1986 frank1986 no está en línea
Miembro del foro
 
Fecha de registro: jun 2009
Mensajes: 106
Modelo de smartphone: Samsung Galaxy S3
Tu operador: Vodafone
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
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

Estás seguro de tener el volumen multimedia en silencio? El volumen de llamada o la vibración no afectan.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
Respuesta

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



Hora actual: 21:09:06 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /