WP7 Mango:如何在Audio Playback Agent类库之外的UVC中处理跳过下一个/上一个?

时间:2011-08-16 04:51:46

标签: windows-phone-7 windows-phone-7.1

有关Windows Phone音频播放代理的信息似乎有些稀缺,我能找到的唯一真实文章是来自MSDN的文章。

不幸的是,样本中的实现对于大多数应用程序来说并不实用,因为它们使用Audio Playback Agent类库中包含的静态AudioTracks列表。对于大多数应用程序,我想他们会在应用程序的主项目中管理一个动态的AudioTracks列表(即View Model或类似的东西)。但问题是,音频播放代理似乎没有一种有效的方式与应用程序的其余部分进行通信。我知道我可以注册BackgroundAudioPlayer.Instance.PlayStateChanged事件,但SkipPrevious或SkipNext没有事件。

简单地问 - 如果您在音频播放代理项目之外管理音频轨道,当用户使用通用音量控制(UVC)上的SkipPrevious / SkipNext按钮时,您如何处理?

1 个答案:

答案 0 :(得分:1)

您需要围绕要播放到代理中的轨道(或代理可以使用的库)移动逻辑。这是必要的,因为即使应用程序未运行,代理也必须能够运行。

从您的应用程序跟踪代理中发生的事情的唯一方法是订阅BackgroundAudioPlayer.Instance.PlayStateChanged事件。使用通用控件时将触发此操作。

正如您所指出的,如果您可以在应用中添加信息(例如与MediaElement相比),这会大大限制金额。

重要请注意,您移动到代理中的任何逻辑(或代理引用的库)都不会使用任何restricted APIs,即使它们位于程序集中由代理商引用并且未使用由市场认证完成的代理的静态分析将导致其失败。