Обновляйте LiveTile при изменении песни

В основном, я использую этот образец.

http://social.msdn.microsoft.com/Forums/en-US/43295c90-43e8-4b08-8a25-958a1c3d0a0b/explanation-on-windowsuixamlmediaxamlrenderingbackgroundtask

XAMLrenderingBackgroundTask, который обновляет мою живую плитку с обложкой альбома, текстом и т. д. Работает отлично, однако я не могу запустить его при смене песни. Я понятия не имею, как я могу запустить эту задачу, когда песня меняется.

У меня есть отдельная BackgroundTask, которая постоянно работает и получает события для изменений песни и т. д. Но я не знаю, как запустить эту XAMLrenderingBackgroundTask самостоятельно, не добавляя триггеры, такие как изменение системного времени и т. д. Это должно быть возможно, я вижу другие приложения, обновляющие изображения на плитках при смене песни.

Я попытался реализовать XAMLrenderingBGTask с помощью Media BackgroundTask и попытался обновить живую плитку при изменении мультимедиа, но произошел сбой из-за того, что какой-то вызов маршалируется из другого потока, чего я и ожидал.

Теперь я застрял. Вот моя фоновая задача для медиаплеера, событие MediaOpened должно инициировать изменение плитки для новой песни, но я не могу...

    public sealed class BackgroundAudioTask : IBackgroundTask 
    {
    public void Run(IBackgroundTaskInstance taskInstance)
    {
        systemmediatransportcontrol = SystemMediaTransportControls.GetForCurrentView();
        systemmediatransportcontrol.ButtonPressed += systemmediatransportcontrol_ButtonPressed;
        systemmediatransportcontrol.PropertyChanged += systemmediatransportcontrol_PropertyChanged;
        systemmediatransportcontrol.IsEnabled = true;
        systemmediatransportcontrol.IsPauseEnabled = true;
        systemmediatransportcontrol.IsPlayEnabled = true;
        systemmediatransportcontrol.IsNextEnabled = true;
        systemmediatransportcontrol.IsPreviousEnabled = true;
        systemmediatransportcontrol.IsFastForwardEnabled = true;
        systemmediatransportcontrol.IsRewindEnabled = true;


        //Add handlers for MediaPlayer
        BackgroundMediaPlayer.Current.CurrentStateChanged += Current_CurrentStateChanged;
        BackgroundMediaPlayer.Current.MediaOpened += MediaPlayer_MediaOpened;
        BackgroundMediaPlayer.Current.MediaEnded += MediaPlayer_MediaEnded;
        BackgroundMediaPlayer.Current.MediaFailed += mediaPlayer_MediaFailed;
        BackgroundMediaPlayer.Current.VolumeChanged += Current_VolumeChanged;

        BackgroundTaskStarted.Set();
        backgroundtaskrunning = true;
    }

person user2704766    schedule 18.09.2014    source источник


Ответы (1)


Я знаю, что уже немного поздно: D, вы можете использовать это для обновления фрагментов . Сценарий 2, я думаю, может вам помочь. в событии MediaOpened вы можете обновить плитку

person Ali NGame    schedule 05.02.2015