o_o*_*o_o 10 asp.net-mvc streaming http partial
我们使用FileStreamResult为基于Silverlight MediaElement的视频播放器提供视频数据:
public ActionResult Preview(Guid id) {
return new FileStreamResult(
Services.AssetStore.GetStream(id, ContentType.Preview),
"application/octet-stream");
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,Silverlight视频播放器在开始播放之前会下载整个视频文件.由于我们的PreviewAction不支持下载部分内容,因此会出现此行为.
(旁注:如果文件托管在IIS虚拟目录中,我们可以在视频中的任何位置继续播放,但是出于安全和审核原因,我们无法提供直接下载链接.所以这不是一个选项.)
我们如何改进Controller Action以支持部分HTTP内容?
我假设我们首先必须通知客户端我们支持它(向HEAD请求添加"Accept-Ranges:bytes"标头),然后我们必须评估HTTP"Range"标头并使用响应流式传输所请求的文件范围206.代码是否可以在IIS6上托管ASP.NET MVC?是否已有一些代码可用?
另见:
CodePlex上有一个项目,它提供了这个确切的功能.
http://mediastreamingmvc.codeplex.com/
看一看.它是专门为此场景创建的,您希望拥有一个表示虚拟资源请求的操作,并在需要时返回部分内容,而不需要开发人员做很多事情来支持它(Action Filter和Result类型的选择.)
| 归档时间: |
|
| 查看次数: |
6563 次 |
| 最近记录: |