Dentro del listado de políticas de publicación que la tienda de Windows Phone se debe de cumplir el requisito 6.5.1, el cual menciona que si se está reproduciendo una música de fondo al abrir nuestra aplicación, el audio no debe de pausarse ni detenerse o modificarse el volumen, si no que se le debe de notificar al usuario que se va a realizar alguna de las acciones anteriores.
En otras palabras, el usuario es quien debe de realizar la acción correspondiente.
IMPORTANTE:
Si el usuario entra a nuestra aplicación cuando tiene música de fondo reproduciendo y nosotros la paramos para comenzar a reproducir otro audio sin notificarle, nuestra aplicación no cumplirá con el requisito 6.5.1
¿Cómo solucionar esto?
Antes de dar una solución debemos de examinar la propiedad GameHasControl, la cual es objeto de MediaPlayer, la misma que se encuentra en el espacio de nombres:
Microsoft.Xna.Framework.Media
NOTA: GameHasControl determina si la música se inició a partir de la aplicación, o si otra aplicación estaba efectuándola antes de que de nuestra aplicación se haya inicializado.
Comenzando
Iniciemos con una nueva App
Abramos el archivo MainPage.xaml.cs, agreguemos el namespace: using Microsoft.Xna.Framework.Media;
Ahora gestiones si esta propiedad devolverá false si hay audio reproduciéndose de fondo:
if (MediaPlayer.GameHasControl)
{
//No hay Audio de fondo
}
else
{
//Hay audio de fondo
}
Pero ahora debemos de notificarle al usuario cuando se esté escuchando audio en background para poder detenerlo y así comenzar a reproducir nuestro audio:
bool backgroundAudio = false;
if (MediaPlayer.GameHasControl)
{
//No hay Audio de fondo
backgroundAudio = true;
}
else
{
//Hay audio de fondo
if (backgroundAudio = true)
{
MessageBox.Show(“¿Detener Audio?”, “DEMO”, MessageBoxButton.OKCancel);
//Acciones
}
}
Y así ha quedado la parte de “Notificación” cuando se esté reproduciendo música de fondo.
Pueden obtener el código de este ejemplo a continuación:
Hasta la próxima!
Happy Coding!