2011-08-11 9 views
9

Jedna z moich aplikacji nie uzyskała ostatnio certyfikatu, ponieważ: "moja aplikacja zatrzymuje odtwarzanie muzyki w tle bez pytania użytkownika, gdy chce odtwarzać muzykę".Jak wykryć, czy w tle odtwarzany jest inny dźwięk? (Windows Phone 7)

Teraz pytanie brzmi: jak możemy wykryć, czy w tle odtwarzana jest muzyka?

Pozdrowienia

+2

Myślę, że brakuje wam klauzuli "bez pytania". Nie zamazywaj automatycznie Arethy, pozwól użytkownikowi najpierw nałożyć na nią palec. Idź Aretha! przycisk, miałem na myśli. –

+0

@HansPassant, naciskając przycisk Play w naszej aplikacji = użytkownik zgadza się grać? – onmyway133

Odpowiedz

7
using Microsoft.Xna.Framework.Media; 

...

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

Myślałem o wszystkim oprócz statycznej właściwości w MediaPlayer, thnx :) –

6

Trzeba zbadać właściwość MediaPlayer.GameHasControl.

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

MediaPlayer.State będzie grać nawet jeśli grasz muzykę. GameHasControl określa, czy muzyka została uruchomiona z aplikacji, czy też inna aplikacja była odtwarzana przed uruchomieniem aplikacji.

można uzyskać wartość w OnActivated ...

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


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

} 

i użyć jej wartość w całej grze, aby ustalić, czy nie należy odtwarzać muzykę.

+0

GameHasControl jest zawsze fałszywe :( – onmyway133

Powiązane problemy