Cambios en MediaPlayer en XNA Game Studio 4.0 para Windows Phone

MediaPlayer, la interfaz para reproducir música en Windows Phone, ha sufrido algún pequeño cambio que puede afectar a nuestras aplicaciones.

La cosa es que ya no podemos modificar las propiedades Volume ni IsMuted cuando lo que se está reproduciendo es contenido de Zune. Estos cambios han sido necesarios para que una aplicación no interfiera con la experiencia de reproducción de música (ya que Zune no tiene elementos en la interfaz gráfica para modificar el volumen ni para desactivarlo).

Podemos ver estos cambios usando sólo el emulador. Si ejecutamos el siguiente código, veremos que los valores asignados a Volume y IsMuted son ignorados mientras se está escuchando la música:

MediaPlayer.Play(new MediaLibrary().Songs);

MediaPlayer.Volume = .5f;

MediaPlayer.IsMuted = true;

Debug.WriteLine(“Volume: {0}, IsMuted: {1}”, MediaPlayer.Volume, MediaPlayer.IsMuted); 

Output:

Volume: 1, IsMuted: False

Este cambio afectará a aquellas aplicaciones que reemplacen al reproductor de Zune, para aplicaciones y juegos que reproducen su propia música hay un efecto colateral: Y es que como el usuario puede estar escuchando música cuando el juego arranca, si modificamos las propiedades de Volume y IsMuted en la música del juego, esos cambios serán ignorados.

Por ejemplo, un patrón común a la hora de reproducir sonidos puede ser como el código siguiente en el que cargamo el sonido, seteamos las propiedades y reproducimos el sonido:

Song song = Content.Load<Song>(“BackgroundMusic”);

MediaPlayer.Volume = 0.5f;

MediaPlayer.Play(song);

Teniendo esto en cuenta, lo que debemos hacer para poder modificar las propiedades de la música en nuestros juegos es reproducir primero, y modificar las propiedades después, asegurándonos así que esos cambios se van a aplicar a nuestros sonidos

Song song = Content.Load<Song>(“BackgroundMusic”);

MediaPlayer.Play(song);

MediaPlayer.Volume = 0.5f;

Si seguimos este patrón, nos aseguraremos evitarnos este “problemilla”.

Juan María Laó Ramos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *