c# - 使用 HTML5 视频标签通过 ashx 处理程序从 sql server blob 播放视频文件

标签 c# asp.net html sql-server-2008 html5-video

我正在使用此 codeproject article 中的代码将 MP4 视频文件上传到 SQL 服务器 (varbinary(MAX)) 并从那里播放。

我的要求是专门使用 SQL 服务器,而不是从文件系统存储和获取视频。

这是我用来播放视频的代码:

<video id='my_video_1'  controls
   width="640" height="264"
  data-setup="{"controls":true, "preload":none}" >
  <source src='<%# "VideoHandler.ashx?id=" + Eval("ID") %>' type='video/mp4'>  
</video>

如果我使用物理视频文件作为视频源,它就可以工作。但是上面的代码不起作用。

在“Internet Explorer”中,标签呈现一个带有红叉的黑框

在“Chrome”中,播放器按钮可见,但当我点击播放按钮时,没有播放视频。当我们右键单击时,它会显示“将视频另存为...”选项,并且下载的文件可以在桌面媒体播放器上正常运行。

请帮助我正确的代码。

最佳答案

HTML5 Video标签需要支持 Range Requests .

当您提供静态文件时,此支持由服务器内部提供,但在 HttpHandler 的情况下您需要自己提供这种支持。一般来说,这意味着处理 RangeIf-Range请求中的 header 并提供适当的 206 部分内容 响应 Content-Range , DateETagContent-Location标题。

文章Range Requests in ASP.NET MVC – RangeFileResult详细描述了如何创建 ASP.NET MVC ActionResult有了 Range Request 支持 - 你应该能够从 ExecuteResult 移动所有逻辑ProcessRequest 的方法HttpHandler的方法|没有问题。

关于c# - 使用 HTML5 视频标签通过 ashx 处理程序从 sql server blob 播放视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12783106/

相关文章:

asp.net - 在 ASP 中使用其他项目的用户控件

javascript - 使用 JavaScript 打开 ModalPopupExtender

c# - FormView.DataItem 在回发时为 null

c# - 使用 .net 转换 cdr (Corel Draw)

C# WPF项目,如何避免InvalidOperationException?

javascript - 像示例一样制作 Turn.js 书?

javascript - 如何获取 HTML5 Canvas 的宽度和高度?

html - 固定在 HTML 页面顶部的导航栏 (CSS/HTML)

c# - Scintilla .NET - 找不到库

c# - 使用 OAuth 在 OpenPaths.cc api 调用中传递查询字符串参数不起作用