从MediaElement控件读取自定义编码网络流

时间:2012-10-15 17:25:27

标签: c# xaml windows-8

我正在开发一个 Windows 8 Windows应用商店应用(XAML / C#),其中我有一个 MediaElement 控件。 MediaElement 控件将 Uri IRandomAccessStream 作为源。

在我的情况下,我输入指向自定义编码资源的URI (并且流是无穷无尽的,所以我需要能够在下载时读取它。)

我想要做的是将我的 MediaPlayer 的来源设置为我的网址,让玩家处理下载,然后在需要阅读内容时调用,以便我可以解码它苍蝇。

在Silverlight中, MediaStreamSource 似乎是要走的路,但它在WinRT中不存在(a light implementation sample does exist though)。

设置它的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

Media extensions sample应该是你想要的。它解释了如何提供自己的解码器。

答案 1 :(得分:0)

这是解决方案: 我从Microsoft的“MediaStreamSource media extension sample”开始,然后在C#中实现了我自己的 MediaStreamSource 类。 然而,使用自定义媒体流源,我无法重用现有的下载机制,因此我基于WinRT的HttpClient类创建了自己的下载机制,该类运行良好。

最终食谱是:

  • 实施自定义媒体流源,以便MediaElement可以读取您的文件
  • 使用HttpClient类发出HTTP请求以按块下载我的流块并将其通过我的媒体源传递到我的媒体元素。