如何检测另一个音频是否在后台播放? (Windows Phone 7)

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

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

问候

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确定音乐是从您的应用程序启动,还是在您的应用程序启动之前是否正在播放其他应用程序。

你可以在OnActivated中获得价值……

 protected override void OnActivated(object sender, EventArgs args) { base.OnActivated(sender, args); // cache music and trial mode values Globals.GameHasMusicControl = MediaPlayer.GameHasControl; } 

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