【发布时间】:2014-09-18 22:33:47
【问题描述】:
基本上,我正在使用这个示例。
一个 XAMLrenderingBackgroundTask 使用专辑封面、文本等更新我的实时磁贴。效果很好 - 但是当歌曲更改时我无法让它运行。我不知道如何在歌曲更改时触发此任务。
我有一个单独的 BackgroundTask,它持续运行并接收歌曲更改等事件。但我不知道如何自己触发此 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;
}
【问题讨论】:
标签: c# xaml windows-runtime windows-phone-8.1 background-task