如何在 WP7 上播放来自 Icecast 的音频流
我尝试过 SMF、SmoothStreaming Client 和 MediaElement。
这些都没有奏效。格式为 asx 或 wma。
编辑:
最近我发现了一个新的流。当我在设计器中时,此流有效。但它不适用于设备。在设备上,流会立即打开和关闭。
此流来自 MP3 格式的 IceCast 服务器。带有 ?.mp3 扩展名。或没有。
如何在 WP7 上播放来自 Icecast 的音频流
我尝试过 SMF、SmoothStreaming Client 和 MediaElement。
这些都没有奏效。格式为 asx 或 wma。
编辑:
最近我发现了一个新的流。当我在设计器中时,此流有效。但它不适用于设备。在设备上,流会立即打开和关闭。
此流来自 MP3 格式的 IceCast 服务器。带有 ?.mp3 扩展名。或没有。
当您流式传输直播电台时,流可能由 IceCast 服务器或 ShoutCast 服务器编码。要读取这些流,您需要对内存中的流进行解码,并在解码后将其传递给 MediaElement。
Silverlight的音频输出
我为此浪费了大量时间,这是迄今为止我找到的最佳解决方案。
快速浏览了 Icecast 网站(我不熟悉他们的服务),似乎他们为流式音频提供的大部分内容都是以 MP3 格式提供的,但他们以 M3U 或 XSPF 格式的播放列表形式提供. 您无法将其提供给 WP7 框架中的任何内置控件或类,但您可以解析文件的内容并将其传递给 MediaElement 以播放单个文件。
M3U 文件是组成 URL 的简单列表,因此处理起来最简单,但 XSPF 格式(它是一种 XML 格式)提供了更多信息,例如标题。您可以轻松地使用 XDocument 类来解析 XSPF 文件,然后使用 LINQ 来查询内容。
您没有将 ?.mp3 添加到 pls 文件中,对嵌入的 URL 吗?如果您使用的是从 PLS/M3U 文件中获得的 URL,则可能需要为其附加文件扩展名。您通常可以通过在 URL 中添加 ?ext=.mp3 或 ?file.mp3 来做到这一点,并且它应该与 MediaElement 一起播放,正如我在 MS 开发板上看到的那样,人们一直在让它与 Shoutcast 流一起使用。
当您从计算机上拔下设备时,您的流是否可以在设备上运行?当您插入 Zune 同步中心时,媒体播放不起作用。
克里斯