基本上,我正在使用这个样本。
XAMLrenderingBackgroundTask用专辑封面,文字等更新我的实时图块。效果很好 - 但是当歌曲改变时我无法运行它。我不知道当歌曲改变时我怎么能触发这个任务。
我有一个单独的BackgroundTask,它持续运行并接收Song更改等事件。但是我不知道如何在不添加系统时间更改等触发器的情况下触发此XAMLrenderingBackgroundTask的方法。它必须是可能,当歌曲发生变化时,我看到其他应用更新了瓷砖上的图像。
我尝试使用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;
}