Windows phone 8.1的后台计时器来停止音乐

本文关键字:音乐 计时器 后台 phone Windows | 更新日期: 2023-09-27 18:11:12

Hello作为使用BackgroundMediaPlayer在后台播放轻松音乐的应用程序的一部分,我想实现一种在设定时间后关闭音乐的方式。

我想的是有一个TimerPicker为用户选择什么时候音乐应该停止,然后添加定时器作为一个支持的任务类型到我的MusicBackgroundTask下的声明在appxmanifest。

然后适当地以某种方式使用ThreadPoolTimer在我的MusicBackgroundTask Windows运行时组件停止音乐时滴答,但我真的找不到任何地方在线解释如何使定时器在后台任务工作。

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

Windows phone 8.1的后台计时器来停止音乐

这是一个MSDN示例,显示了使用ThreadPoolTimerIBackgroundTask实现(参见samplebackgroundtasks .cs): http://code.msdn.microsoft.com/windowsapps/Background-Task-Sample-9209ade9/sourcecode?fileId=43572&pathId=498327315

不工作的一个潜在原因是,如果您没有保留对从IBackgroundTaskInstance.GetDeferral()返回的对象的引用,这将导致您的后台任务在IBackgroundTask.Run返回后过早完成。上面链接的示例做到了这一点,我相信这也是BackgroundMediaPlayer Audio任务继续播放音乐所必需的,所以如果你还没有这个,我会感到惊讶。

最后,appxmanifest文件中MusicBackgroundTask声明中的"Timer"任务类型对ThreadPoolTimer的使用没有影响。"Timer"任务类型允许TimeTriggerMaintenanceTrigger触发器触发IBackgroundTask入口点