Windows Phone XNA MediaPlayer / MediaQueue не показывают правильное состояние для приостановленного локального носителя при загрузке приложения silverlight - PullRequest
1 голос
/ 02 апреля 2012

После приостановки локального мультимедиа (в приложении 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 ...

Кто-нибудь еще видел это?Есть ли обходной путь?

Большое спасибо, Джон

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...