0

基本上,我正在使用这个示例。

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

XAMLrenderingBackgroundTask 使用专辑封面、文本等更新我的实时磁贴。效果很好 - 但是当歌曲更改时我无法运行它。我不知道如何在歌曲更改时触发此任务。

我有一个单独的 BackgroundTask 持续运行并接收 Song 更改等事件。但我不知道如何自己触发此 XAMLrenderingBackgroundTask 而不添加诸如 System time changed 等触发器。它必须是可能的,我看到其他当歌曲更改时,应用程序会更新磁贴上的图像。

我尝试使用 Media BackgroundTask 实现 XAMLrenderingBGTask 并尝试在媒体更改时更新活动磁贴,但由于某些调用从我所期望的另一个线程编组而崩溃。

现在我被困住了。这是我的媒体播放器的后台任务,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;
    }
4

1 回答 1

0

我知道有点晚了 :D 你可以用这个来更新瓷砖。场景2我认为可以帮助你。在 MediaOpened 事件中,您可以更新磁贴

于 2015-02-05T19:14:22.343 回答