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

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

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

С уважением

2 ответа

Решение
  using Microsoft.Xna.Framework.Media;

...

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

Вам необходимо проверить свойство 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;

}

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

Другие вопросы по тегам