如何检测是否有其他音频在后台播放? (Windows Phone 7)

时间:2011-08-11 23:44:20

标签: c# .net windows-phone-7 media-player

我的一个应用程序最近未通过认证,因为:“我的应用程序停止播放背景音乐而不询问用户何时播放某些音乐”。

现在问题是:我们如何检测背景中是否有音乐播放?

此致

2 个答案:

答案 0 :(得分:7)

  using Microsoft.Xna.Framework.Media;

...

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

答案 1 :(得分:6)

您需要检查MediaPlayer.GameHasControl属性。

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

即使您正在播放音乐,也会播放MediaPlayer.State。 GameHasControl确定音乐是从您的应用程序启动,还是在您的应用程序启动之前是否正在播放其他应用程序。

您可以在OnActivated中获取值...

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


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

}

在整个游戏中使用该值来确定您是否应该播放音乐。