1

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

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

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

4

1 回答 1

1

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

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

正如您所注意到的,这极大地限制了您可以在应用程序中包含的信息的数量(例如,与 MediaElement 相比)。

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

于 2011-08-16T09:26:08.220 回答