gpt4 book ai didi

asp.net - 播放 .ashx 提供的 Windows Media 视频

转载 作者:行者123 更新时间:2023-12-02 17:12:29 25 4
gpt4 key购买 nike

我已经在网页中嵌入了 Windows 媒体播放器,使用通常的 <object><embed>标签。该视频由 ashx(http 处理程序)提供。当我尝试播放视频时,我通常(但并非总是)收到一条错误消息,告诉我文件扩展名 (ashx) 与文件格式不匹配。

这种情况发生在 IE(9 和 10)以及带有 WMP 插件的 Firefox(最新)中。

我知道标签(带有 classid 等)是正确的,因为媒体播放器会显示并允许我单击“播放”按钮。

ashx 在响应 header 中返回正确的 mime 类型 (video/x-ms-wmv) 和有效的文件名 (somevideo.wmv)。我尝试过内容处置附件和内联。

我尝试过使用“http://”、“https://”和“//”(我更喜欢)的网址

如果我直接将视频文件的 URL(包括 .ashx)放入浏览器地址栏中,视频就会下载并播放。

如果我修改对象标记以使用视频文件的直接路径 (/somewhere/somevideo.wmv),它可以工作 - 但我不能使用它作为解决方案。

同一个 ashx 可以毫无问题地提供各种其他格式的视频和音频 - 似乎嵌入式 Windows 媒体播放器不喜欢它。

这已经工作了好几年了 - 我认为这是一些新行为,尽管除了浏览器更新之外我无法确定发生了什么变化。

编辑:对 Fiddler 进行更仔细的研究显示了我之前错过的一些东西。如果我直接访问视频(通过在浏览器地址栏中输入 ashx url),视频将在独立媒体播放器中播放。内容类型和配置 header 正确。

但是,当使用嵌入式播放器时,我通常(并非总是)从用户代理“Microsoft-WebDAV-MiniRedir/6.1.7601”收到 OPTIONS 和 PROPFIND 请求。我没有启用 WebDAV,并且我不响应选项和 propfind 请求。嵌入式播放器不请求实际的视频文件。

更正 - 我实际上响应了选项请求 - 这是来自 fiddler 的请求和响应信息:

OPTIONS http://mydomain.com/myhandler.ashx HTTP/1.1
User-Agent: Microsoft-WebDAV-MiniRedir/6.1.7601
translate: f
Connection: Keep-Alive
Host: mydomain.com

HTTP/1.1 200 OK
Allow: OPTIONS, TRACE, GET, HEAD, POST
Server: Microsoft-IIS/7.5
Public: OPTIONS, TRACE, GET, HEAD, POST
X-Powered-By: ASP.NET
Date: Tue, 24 Dec 2013 16:03:49 GMT
Content-Length: 0

接下来是四个相同的请求,使用 PROPFIND 而不是 OPTIONS。响应是 404。

最佳答案

要成功播放文件,您需要正确指定 Content-Disposition 和 Content-Type header 。

在您的 ashx 中,确保添加以下行,

 Response.AddHeader("Content-Disposition","attachment;filename='a.wmv'");
Response.AddHeader("Content-Type","video/wmv");

请根据您拥有的文件类型确定正确的名称和内容类型,并将其替换为上面的代码。

看起来有跨源资源共享问题,

确保您按照以下响应的建议为不同域返回正确的 header 。

 Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: X-Requested-With, Accept, Content-Type, Origin
Access-Control-Max-Age: 1728000

* 替换为嵌入您的媒体播放器的网页所在的域。

关于asp.net - 播放 .ashx 提供的 Windows Media 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20302265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com