如何在WP7上播放来自Icecast的音频流

4
如何在WP7上播放来自Icecast的音频流?
我尝试过SMF、SmoothStreaming客户端和MediaElement,但这些方法都不起作用。这些格式要么是asx,要么是wma。
最近我发现了一个新的音频流,它可以在设计器中使用,但是在设备上却无法正常播放。在设备上,该流会立即打开并关闭。
这个流是从一个IceCast服务器中获取的,格式为MP3,扩展名为.mp3或没有扩展名。

可能需要比这更多的信息。它是什么格式?你尝试过什么,什么没有起作用?现在这个问题太笼统了,除了“查看MediaElementMediaPlayerSoundEffect”之类的答案外,很难得到更好的答案。 - John Gardner
4个回答

1

当您正在播放实时广播时,流可能由IceCast服务器或ShoutCast服务器进行编码。要读取这些流,您需要在内存中解码流并将其传递给MediaElement一旦解码完成。

请查看Mp3MediaStreamSource

Silverlight的音频输出

我在这上面浪费了很多时间,这是我迄今为止找到的最佳解决方案。


0

我快速浏览了Icecast网站(我不熟悉他们的服务),似乎他们提供的大部分流媒体音频都是以MP3格式提供的,但是他们将其作为M3U或XSPF格式的播放列表提供。您无法将此提供给WP7框架中的任何内置控件或类,但是您可以解析文件内容并将其传递给MediaElement以播放单个文件。

M3U文件是组成URL的简单列表,因此最简单的处理方式是使用它,但是XSPF格式(这是一种XML格式)提供了更多信息,例如标题。您可以轻松使用XDocument类解析XSPF文件,然后使用LINQ查询内容。


我尝试过获取Winamp用于播放流的URL,也尝试从m3u文件中提取URL,但无法播放流。 - Alexandre Brisebois
如果您能展示一下您正在尝试处理的文件(可能是M3U格式),以及它的内容和您正在使用的代码来尝试处理和播放这些内容,那么我们或许可以提供更多帮助。 - Derek Lakin

0

你没有把 ?.mp3 添加到 pls 文件中,作为嵌入式 URL 吗?如果你正在使用从 PLS/M3U 文件获取的 URL,你可能需要在其后添加文件扩展名。你可以通过在 URL 后面添加 ?ext=.mp3 或 ?file.mp3 来实现这一点。根据我在微软开发者论坛上的阅读,人们已经成功通过这种方式在 MediaElement 上播放 Shoutcast 流。


我将尝试使用?ext=.mp3而不是?.mp3。 - Alexandre Brisebois

0

当您将设备从计算机上拔下来时,您的流媒体是否能够正常工作?当您连接到Zune同步中心时,无法播放媒体。

克里斯


没有支持的格式,可能需要在将其作为MediaElementSource传递给MediaElement之前在内存中对其进行解码。 - Alexandre Brisebois

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接