0

在我的网络服务器上,我有一个名为03.mp4.
我有一个页面(videoserver.aspx)使用以下代码提供该文件

Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment; filename=video.mp4");
Response.TransmitFile(Server.MapPath("03.mp4"));
Response.End();

这两个电话有什么区别?
1:http://localhost/media/03.mp4
2:http://localhost/media/videoserver.aspx?q=03

当我直接在浏览器中指向这些 URL 时,在这两种情况下都会提示我保存对话框。
我有另一个具有 SWFObject 的网页。它使用视频作为输入。行。当我输入 URL 1 时,它会加载视频。
当我提供 URL 2 时,它不会加载视频。

为什么会有这种差异?我更喜欢 URL 2,因为您可以根据查询字符串动态更改您提供给消费者的视频。

4

2 回答 2

0

许多视频播放器,包括新的 HTML5<video>元素,都需要使用 HTTP 标头支持所谓的字节范围请求Range。这通常已经内置在一个有点自尊的 HTTP 服务器中。基本上,为了通知客户端请求的 URL 支持字节范围请求,服务器应该返回Accept-Ranges: bytes响应并能够Range通过按照规范将请求的字节范围准确地返回到响应来处理所有传入的请求(参见Range标题上的第一个链接以获取详细信息)。

因此,如果您选择完全由您自己处理 HTTP 响应,而不是让 HTTP 服务器完成其设计的工作,您必须仔细考虑这一点。

于 2012-06-27T22:41:16.113 回答
0

因此,它证明我是 SWFObject 的新手。
我所指的 SWFObject 是由 Camtasia 提供的,它通过 FLashVars 接受 mp4 文件。
问题是“为什么它在接受 URL 1 时不接受 URL 2?”。答案是,URL 2 不是以.mp4.
然后我的问题的解决方案是,创建一个接受*/media/*.mp4路径并返回适当文件内容的处理程序,在我的情况下,这些内容是从数据库中获取的。

于 2012-07-06T04:47:05.677 回答