【问题标题】:Reading a custom encoded network stream from a MediaElement control从 MediaElement 控件读取自定义编码网络流
【发布时间】:2012-10-15 17:25:26
【问题描述】:

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

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

我想做的是将我的 MediaPlayer 的源设置为我的 url,让播放器处理下载,但在需要读取某些内容时调用它,以便我可以对其进行解码苍蝇。

在 Silverlight 中,MediaStreamSource 似乎是可行的方法,但在 WinRT (a light implementation sample does exist though) 中不存在。

最好的设置方法是什么?

【问题讨论】:

    标签: c# xaml windows-8


    【解决方案1】:

    Media extensions sample 应该是您要查找的内容。它解释了如何提供您自己的解码器。

    【讨论】:

    • 是的,这就是我想要的。问题是媒体扩展应该在 C++ 中,所以 MediaStreamSource 示例更适合(C++ 中的扩展,但实际的解码逻辑是在 C# 中实现的)。
    【解决方案2】:

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

    最终配方是:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多