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

Mo *_*our 9 .net c# media-player windows-phone-7

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

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

问候

Dam*_*ian 7

  using Microsoft.Xna.Framework.Media;
Run Code Online (Sandbox Code Playgroud)

...

    if (Microsoft.Xna.Framework.Media.MediaPlayer.State == MediaState.Playing)
    {
          ....
    }
Run Code Online (Sandbox Code Playgroud)


Dav*_*ile 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;

}
Run Code Online (Sandbox Code Playgroud)

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