Object Can';t使用httpHandler在页面上显示.swf文件
请读最后一段 我有一个页面,我应该在其中显示一些媒体数据。 为此,我使用html标记,如下所示:Object Can';t使用httpHandler在页面上显示.swf文件,object,video,flash,handler,Object,Video,Flash,Handler,请读最后一段 我有一个页面,我应该在其中显示一些媒体数据。 为此,我使用html标记,如下所示: <object type="video/x-ms-wmv" width="320" height="240"> <param name="src" value="some_media_url" /> <param name="AutoSize" value="true"> <param name="ShowDisplay" value
<object type="video/x-ms-wmv" width="320" height="240">
<param name="src" value="some_media_url" />
<param name="AutoSize" value="true">
<param name="ShowDisplay" value="false">
<param name="AutoStart" value="false">
<param name="StretchToFit" value="true">
<param name="bgcolor" value="#ffffff" />
</object>
<object type="video/x-ms-wmv" width="320" height="240">
<param name="src" value="http://localhost:11111/MediaHandler.ashx?Id=1111" />
<param name="AutoSize" value="true">
<param name="ShowDisplay" value="false">
<param name="AutoStart" value="false">
<param name="StretchToFit" value="true">
<param name="bgcolor" value="#ffffff" />
</object>
在我的例子中,我应该通过一些MediaHandler.ashx http处理程序从SQL server获取媒体数据。
当我获得音频(.mp3、.wma)或视频(.flv、.mp4)流时,这一切都很好。
但是我在使用.swf闪存文件时遇到了一些问题。
对于这种类型的文件,我将类型更改为“application/x-shockwave-flash”。在这种情况下,当我使用一些远程路径时,例如,它可以正常工作:
<object type="application/x-shockwave-flash" width="320" height="240">
<param name="src" value='http://www.tizag.com/pics/example.swf' />
<param name="AutoSize" value="true">
<param name="ShowDisplay" value="false">
<param name="AutoStart" value="false">
<param name="StretchToFit" value="true">
</object>
但是,它对我的处理程序不起作用。它既不适用于本地路径,如“c:\videos\example.swf”
有什么想法吗
编辑:实际上,媒体的src如下所示:
<object type="video/x-ms-wmv" width="320" height="240">
<param name="src" value="some_media_url" />
<param name="AutoSize" value="true">
<param name="ShowDisplay" value="false">
<param name="AutoStart" value="false">
<param name="StretchToFit" value="true">
<param name="bgcolor" value="#ffffff" />
</object>
<object type="video/x-ms-wmv" width="320" height="240">
<param name="src" value="http://localhost:11111/MediaHandler.ashx?Id=1111" />
<param name="AutoSize" value="true">
<param name="ShowDisplay" value="false">
<param name="AutoStart" value="false">
<param name="StretchToFit" value="true">
<param name="bgcolor" value="#ffffff" />
</object>
编辑:
如果我直接引用一个现有文件,那么这样做很好:
<object type="application/x-shockwave-flash" width="320" height="240">
<param name="src" value="/videos/ETFflash1016.swf" />
<param name="AutoSize" value="true">
<param name="ShowDisplay" value="false">
<param name="AutoStart" value="true">
<param name="StretchToFit" value="true">
</object>
但当我使用httpHandler从DB获取文件时:
<object type="application/x-shockwave-flash" width="320" height="240">
<param name="src" value="http://localhost:57031/MediaHandler.ashx?Id=512429" />
<param name="AutoSize" value="true">
<param name="ShowDisplay" value="false">
<param name="AutoStart" value="true">
<param name="StretchToFit" value="true">
</object>
不显示闪光灯
我比较了这些情况下的输出html,它们在这两种情况下都是相同的(除了src param值)。Fiddler为.swf文件的两个请求显示相同的结果,并且浏览器显示(例如,在IE开发工具的“网络”选项卡中)在这两种情况下该文件都已下载到客户端。
但在处理程序的情况下,不会显示flash。尝试以下操作:
<object type="application/x-shockwave-flash" data="file.swf" style="width:640px;height:480px;margin:10px 36px;">
<param name="movie" value="file.swf" />
<param name="AutoSize" value="true">
<param name="ShowDisplay" value="false">
<param name="AutoStart" value="false">
<param name="StretchToFit" value="true">
<param name="bgcolor" value="#ffffff" />
</object>
它对我有用
Fiddler为.swf文件的两个请求显示相同的结果
在Fiddler的响应头中,本地文件和ASHX处理程序是否返回相同的内容类型:application/x-shockwave-flash
?我已经解决了
在处理程序中,我将响应头的参数设置为与直接引用现有文件时相同的值
现在,我刚刚删除了所有这些值,它可以工作了!
我仍然不明白为什么,但它是有效的:)谢谢你的回复。你的代码和我的一样。它不适用于MediaHandler返回的.swf数据(写入响应)。感谢链接,但它也不适用于httpHandler:(如果swf在本地主机中,为什么要使用绝对位置而不是简单的相对位置?唯一的“folder/file.swf”应该可以。如果您看不到它,请检查文件本身的权限。如果您让我们知道如何通过网络访问该文件,以便在JSFIDLE中运行测试,这将非常有用。谢谢。是的,不仅仅是“内容类型”,但所有响应头参数都是相同的。能否共享完整代码?我遇到了相同的问题,我还需要http处理程序的swf源代码,请共享此处理程序的端代码和客户端