Windows Phone 8.1后台计时器停止音乐

时间:2014-07-03 09:15:00

标签: c# timer windows-phone-8.1 background-agents background-task

你好,作为使用BackgroundMediaPlayer在后​​台播放轻松音乐的应用程序的一部分,我想实现一种在一段时间后关闭音乐的方法..

我的想法是让用户在音乐停止时选择TimerPicker,然后将Timer作为支持的任务类型添加到appxmanifest中的声明下的MusicBackgroundTask中。

然后以某种方式正确地使用我的MusicBackgroundTask Windows运行时组件中的ThreadPoolTimer来停止音乐,但我真的无法在网上找到解释如何在后台任务中使用计时器的工作。

因此,如果有人有一个很好的链接解释或更好的一些工作代码,这将是一个很大的帮助,非常感谢..

1 个答案:

答案 0 :(得分:1)

以下是使用IBackgroundTask显示ThreadPoolTimer实现的MSDN示例(请参阅SampleBackgroundTask.cs):http://code.msdn.microsoft.com/windowsapps/Background-Task-Sample-9209ade9/sourcecode?fileId=43572&pathId=498327315

这种方法无效的一个原因是,如果您没有保留对IBackgroundTaskInstance.GetDeferral()返回的对象的引用,这会导致您的后台任务在IBackgroundTask.Run返回后过早完成。上面链接的示例执行此操作,我相信BackgroundMediaPlayer Audio任务也需要继续播放音乐,所以如果您还没有这个,我会感到惊讶。

最后,appxmanifest文件中MusicBackgroundTask声明中的“计时器”任务类型对ThreadPoolTimer的使用没有影响。 “计时器”任务类型允许IBackgroundTaskTimeTrigger触发器触发MaintenanceTrigger入口点。