AudioPlayerAgent不支持的API

问题描述:

我想使用在"Unsupported APIs for Background Agents"页面上列出的各种API,从我的AudioPlayerAgent中。该网页特别提到ScheduledTaskAgentsAudioPlayerAgent不支持的API

有不能在由 计划任务执行的代码可以使用一组API。这包括在实现 ScheduledTaskAgent的类中包含的代码,作为从 ScheduledTaskAgent调用的任何库中的代码。其中一些API由开发工具 检测到,并会在运行或编译时引发错误。其他API是 受Windows Phone Marketplace应用程序提交 进程限制。

这是否意味着AudioPlayerAgents可以使用该页面上列出的API的?两者都继承Microsoft.Phone.BackgroundAgent,但在该页面上只明确提及一个,我不确定AudioPlayerAgent是否被认为是Scheduled Task。任何人都可以确认一种方式或其他?

我认为对于“来自后台代理的不支持的API”也适用于后台音频,除了BackgroundAudioPlayer这个明显的例外。我通过尝试向代理添加一个不支持的API并针对我的测试项目运行SDK的Marketplace测试工具包(我试过Microsoft.Devices.VibrateController)来支持这一点。

这引起了预期故障:

结果详细

[ERROR]:不支持的API不能由背景剂一起使用。 Assembly AudioPlaybackAgent1.dll试图使用Microsoft.Devices.VibrateController :: get_Default。

[错误]:不支持的API不能被后台代理使用。 Assembly AudioPlaybackAgent1.dll试图使用Microsoft.Devices.VibrateController :: Start。

[错误]:不支持的API不能被后台代理使用。 Assembly AudioPlaybackAgent1.dll试图使用Microsoft.Devices.VibrateController。

我建议你检查你的API对这个工具,看看你会得到什么结果。

这些API限制对我来说很有意义,因为您可以将AudioPlayerAgent想象为仅在用户输入时(例如用户按下播放,暂停,跳过)或者发生相关音频事件时才运行的预定代理程序(例如,跟踪结束,新轨道准备就绪,播放开始)。背景音频代理上存在类似的CPU使用情况,运行时间和内存限制,因为它们在预定的代理上执行。

+0

谢谢,它似乎是MSDN页面也涵盖'AudioPlayerAgents'。 – keyboardP 2012-02-02 19:52:50