2012-03-22 53 views
3

我有一个播放视频的MediaElement。我的视频以二进制形式存储在我的SQL Server数据库中。如何使用MediaElement从数据库以大块流式传输视频

这对我的工作方式是Silverlight应用程序从Web服务中读取所有二进制数据。该网络服务返回一个byte[],我变成一个流,并设置为MediaElement的来源。

这个问题的最大问题是它需要在设置MediaElement的源之前读取所有的数据。对于大视频,这需要很长时间。

所以,我希望以某种方式将块和缓冲区放在一起,就像任何在线视频播放器一样。

任何线索我如何能够实际上做到这一点?

回答

1

我结束了这个有点不同。 我找不出数据库中的缓冲区,所以我们设置了一个mediaserver,并使用silverlight应用程序从中流式传输。

+0


你能解释一下你做了什么?因为我有类似的问题。
服务器上有很多电影,客户端应该通过Silverlight的MediaElement观看它们。 那是可能有类似的MediaElement: 的问题是,我们不希望有整电影被冲进客户端。 我测试过** Mezzmo **和** IIS Live Smooth Streaming **,但我找不到它们代表其内容的mms地址。 – 2013-08-05 08:10:24

0

我在Silverlight论坛上找到this article,它有一个类似的问题(音频而不是视频)。

解决方案状态: “您可以尝试创建ASX文件来保存播放列表并将ASX文件设置为MediaElement的源。”

一个在溶液中提供的链接,接着说: “的ASX文件就是指定在播放列表中的媒体文件的XML文件的播放列表提供,除其他事项外,中央切入点一群媒体。“

这听起来像你应该能够设置你的MediaElement的一个Silverlight Playlist,或ASX File源,然后下载视频,在块(可能作为单独的“文件”),该Playlist

希望这会有所帮助!

+0

但是这需要将文件放置在某处,如果我理解正确。我把它存储在数据库中。 – Nicolai 2012-03-22 13:47:49

+0

嗯..我想知道是否有可能在Silverlight播放列表中存储其他MediaElement对象?那么也许您可以在从数据库下载视频时动态创建MediaElement对象?那么仍然有你的“主”MediaElement参考播放列表?只是在黑暗中拍摄...我以前没有这样做过。 – lhan 2012-03-22 14:22:26