2011-08-11 14 views
9

Una de mis aplicaciones ha fallado recientemente la certificación porque: "mi aplicación detiene la música de fondo sin preguntarle al usuario cuándo quiere reproducir algo de música".¿Cómo detectar si se está reproduciendo otro audio en el fondo? (Windows Phone 7)

Ahora la pregunta es: ¿cómo podemos detectar si hay música reproduciéndose en el fondo?

Saludos

+2

Creo que te estás perdiendo la cláusula "sin preguntar". No esperes a Aretha automáticamente, deja que el usuario lo señale primero. ¡Vete Aretha! botón, quise decir. –

+0

@HansPassant presionando el botón Reproducir en nuestra aplicación = ¿el usuario acepta jugar? – onmyway133

Respuesta

7
using Microsoft.Xna.Framework.Media; 

...

if (Microsoft.Xna.Framework.Media.MediaPlayer.State == MediaState.Playing) 
    { 
      .... 
    } 
+0

Pensé en todo excepto en una propiedad estática en MediaPlayer, thnx :) –

6

Es necesario examinar la propiedad MediaPlayer.GameHasControl.

http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.media.mediaplayer.gamehascontrol.aspx

MediaPlayer.State estará jugando incluso si estás jugando la música. GameHasControl determina si la música se inició desde tu aplicación o si se estaba reproduciendo otra antes de que tu aplicación comenzara.

Usted puede obtener el valor de OnActivated ...

protected override void OnActivated(object sender, EventArgs args) 
{ 
    base.OnActivated(sender, args); 


    // cache music and trial mode values 
    Globals.GameHasMusicControl = MediaPlayer.GameHasControl; 

} 

y utilizar este valor a lo largo de su juego para determinar si debe o no reproducir música.

+0

GameHasControl siempre es falso :( – onmyway133

Cuestiones relacionadas