Как определить, воспроизводится ли другой звук в фоновом режиме? (Windows Phone 7)
Одно из моих приложений недавно прошло сертификацию, потому что: "мое приложение останавливает фоновую музыку, не спрашивая пользователя, когда оно хочет воспроизвести какую-либо музыку".
Теперь вопрос: как мы можем определить, есть ли какая-либо музыка, играющая на заднем плане?
С уважением
2 ответа
Решение
using Microsoft.Xna.Framework.Media;
...
if (Microsoft.Xna.Framework.Media.MediaPlayer.State == MediaState.Playing)
{
....
}
Вам необходимо проверить свойство MediaPlayer.GameHasControl.
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;
}
И используйте это значение на протяжении всей игры, чтобы определить, следует ли вам играть музыку.