Как определить, воспроизводится ли другой звук в фоновом режиме? (Windows Phone 7) - PullRequest
9 голосов
/ 12 августа 2011

Одно из моих приложений недавно прошло сертификацию, потому что: «мое приложение останавливает фоновую музыку, не спрашивая пользователя, когда оно хочет воспроизвести какую-либо музыку».

Теперь вопрос: как мы можем определить, играет ли музыка в фоновом режиме?

Привет

Ответы [ 2 ]

7 голосов
/ 12 августа 2011
  using Microsoft.Xna.Framework.Media;

...

    if (Microsoft.Xna.Framework.Media.MediaPlayer.State == MediaState.Playing)
    {
          ....
    }
6 голосов
/ 12 августа 2011

Вам необходимо проверить свойство MediaPlayer.GameHasControl.

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

MediaPlayer.State будет воспроизводиться, даже если вы играете музыку. GameHasControl определяет, была ли музыка запущена из вашего приложения или другое приложение воспроизводилось до его запуска.

Вы можете получить значение в OnActivation ...

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


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

}

И используйте это значение на протяжении всей игры, чтобы определить, следует ли воспроизводить музыку.

...