在WPF中播放流媒体视频

时间:2011-08-21 03:52:23

标签: c# wpf streaming

我已经编写了一个流媒体文件的WCF服务。我现在正在编写一个使用此服务的WPF应用程序,并且刚刚发现MediaElement不接受Stream对象作为源属性的输入参数。

过去两天我一直在谷歌上搜索,并查看了几个替代方案,包括WPF中的Silverlight视口,VLC ActiveX控件,VideoRendererElement和WPFMediaKit。不幸的是,由于缺乏文档和/或示例,我一直受到阻碍,到目前为止还没有取得任何进展。事实上,这是我第一次使用WPF也无济于事。

简而言之,我正在寻找的是文档或示例,它们演示了WPF中的流媒体,如果可能的话,也很容易实现。解决方案不一定是完美的;我需要的只是有效的东西。

2 个答案:

答案 0 :(得分:5)

您可以在WPF应用中托管HttpListener,并通过由HttpListener提供给MediaElement.Source的网址提供您从WCF服务收到的流。

其他选项(虽然你似乎已经排除了它们):

不确定这是否适合您,但有多媒体商业图书馆,包括WPF中的视频流播放:

答案 1 :(得分:0)

有一种方法可以使用伪文件来实现这一点,即模拟文件系统调用。

当路径通过时,媒体播放器首先打开文件(调用CreateFile),然后从中读取数据(调用ReadFile),移动文件中的位置(调用SetFilePointer)。

它只是在视频文件中移动并读取所需的块。

例如,这里描述了这种方法(文件调用刚刚映射到适当的IStream方法:ReadFile - > Read,SetFilePointer - > Seek,CreateFile - > Clone等):http://boxedapp.com/encrypted_video_streaming.html