После приостановки локального мультимедиа (в приложении Silverlight, проигрывателе Zune или через системный трей);при холодном запуске любого приложения Silverlight:
Ожидаемое поведение:
Microsoft XNA MediaPlayer.Queue содержит соответствующий носитель, и проигрыватель находится в состоянии паузы.MediaPlayer.GameHasControl должно быть истинным.Проигрыватель Zune показывает мультимедиа, как и ожидалось.
Фактическое поведение:
Microsoft XNA MediaPlayer.Queue пусто, и проигрыватель находится в остановленном состоянии.MediaPlayer.GameHasControl иногда находится в состоянии переменной.Проигрыватель Zune показывает носитель, как и ожидалось.
Минимальный воспроизводимый код:
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
Loaded += OnMainPageLoaded;
}
private void OnMainPageLoaded(object sender, RoutedEventArgs e)
{
FrameworkDispatcher.Update();
// X reports as NULL when launching the app with an XNA song in the system tray in a paused state
// The XNA queue is empty. ActiveSongIndex is -1. PlayState is stopped.
var x = MediaPlayer.Queue.ActiveSong;
// ** Debug BREAK-POINT here - check value of 'x' **
// Following Play() below, the MediaPlayer.Queue.ActiveSong then becomes non-null as expected
var lib = new MediaLibrary();
MediaPlayer.Play(lib.Songs.First());
return;
}
}
}
Примечание. Любое приложение Silverlight на плите котла демонстрирует такое поведение - однакоКлиент Microsoft Zune, кажется, всегда правильно показывает носитель в состоянии паузы.
Мое предположение, что это является причиной проблемы в оболочке Silverlight XNA ...
Кто-нибудь еще видел это?Есть ли обходной путь?
Большое спасибо, Джон