Windows phone 8 具有动态播放列表的BackgroundAudioAgent

Windows phone 8 具有动态播放列表的BackgroundAudioAgent,windows-phone-8,background-audio,Windows Phone 8,Background Audio,我正在开发一个应用程序,它能够播放从服务器流出来的音频曲目。此应用程序需要能够播放音频,即使在屏幕锁定或应用程序置于后台时也是如此 ===== 要在windows phone中播放背景音频,需要背景音频代理 Microsoft提供的示例显示了以下基本内容: 在这个示例中,后台音频代理有一个静态曲目列表,当用户点击主项目中的skip/prev时,它只是将其转发给singleton BackgroundAudioPlayer对象,该对象反过来使用BackgroundAudioAgent项目中的事件处

我正在开发一个应用程序,它能够播放从服务器流出来的音频曲目。此应用程序需要能够播放音频,即使在屏幕锁定或应用程序置于后台时也是如此

=====

要在windows phone中播放背景音频,需要背景音频代理

Microsoft提供的示例显示了以下基本内容:

在这个示例中,后台音频代理有一个静态曲目列表,当用户点击主项目中的skip/prev时,它只是将其转发给singleton BackgroundAudioPlayer对象,该对象反过来使用BackgroundAudioAgent项目中的事件处理程序加载下一首/prev歌曲

但是,我认为一个常见的用例是,主项目将具有播放列表的详细信息,就像从服务器检索到的列表一样,我们只需要backgroundaudio代理将该请求转发给主项目

我的问题是

有没有办法将用户操作从音频代理转发到主项目,以便主项目可以确定播放哪个曲目? 注:我不能使用MediaElement,它在Windows应用商店应用程序中运行良好,并提供后台支持,因为在Windows Phone SDK中它没有后台支持

编辑:当屏幕被锁定时,即使后台代理正在运行,应用程序本身也可以终止,因此我猜没有机制将请求转发给应用程序。这意味着,后台代理必须是自给自足的。。。这将是一个糟糕的设计,因为播放存储在远程服务器中的音频时,需要进行身份验证,而这种行为似乎很常见

此时,我正在考虑将所有特定于URL的信息写入一个文件,并让后台音频代理读取保存的文件,通过服务器验证并创建音频曲目。但当应用程序恢复时,显示当前音频信息的握手至少会很复杂


我希望我错了,实际上有一个比这更简单的方法。我很想看看其他人是如何处理的。

Background就是Background。如果你需要提出请求,就提出吧。否则,在主应用程序中准备播放列表,并将其保存到IsoStorage/数据库中。对于扩展场景,请在此处使用背景音频流示例code.msdn.microsoft.com/wapps/Background-Audio-Streamer-e85b8debWell。将代码从主应用程序复制到audioagent是非常不必要的复杂操作。我更喜欢iOS或Android的实现。在任何情况下,我已经将其转储到文件系统,并让代理从中读取,然后它就可以工作了。。但是它很麻烦,很粗糙,坦率地说不是一个好的系统。你可以重用代码,制作一个专用的程序集,并在后台/应用程序中引用它。