Playing streaming video in WPF

2020-06-03 02:29发布

I've written a WCF service that streams media files. I'm now writing a WPF application that consumes this service and have only just found out that the MediaElement does not accept Stream objects as input parameters for the source property.

I've been Googling endlessly for the past two days and have looked at several alternatives including the Silverlight Viewports inside WPF, VLC ActiveX controls, VideoRendererElement and WPFMediaKit. Unfortunately I've been hampered by lack of documentation and/or examples and haven't really made any progress so far. The fact that this is the very first time I'm using WPF doesn't help either.

To put it simply, what I'm looking for is something that comes with documentation or examples demonstrating streaming in WPF and, if possible, is also straightforward to implement. The solution doesn't have to be perfect; all I need is something that works.

标签: c# wpf streaming
2条回答
▲ chillily
2楼-- · 2020-06-03 03:06

You could host a HttpListener inside your WPF app and supply the stream which you receive from your WCF service through an URL which is served by HttpListener to MediaElement.Source .

Other options (though you seem to have ruled them out):

Not sure if this is an option for you, but there are commercial libraries for multimedia including video playback from streams in WPF:

查看更多
干净又极端
3楼-- · 2020-06-03 03:19

There is a way to achieve this using a pseudofiles, i.e. emulation of file system calls.

When a path passed, a media player firstly opens the file (CreateFile is called), then reads data from it (ReadFile is called), moves position within the file (SetFilePointer is called).

It just moves within the video file and reads required blocks.

For example here described this approach (file calls just mapped to appropriate IStream methods: ReadFile -> Read, SetFilePointer -> Seek, CreateFile -> Clone etc.): http://boxedapp.com/encrypted_video_streaming.html

查看更多
登录 后发表回答