Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Object Can';t使用httpHandler在页面上显示.swf文件_Object_Video_Flash_Handler - Fatal编程技术网

Object Can';t使用httpHandler在页面上显示.swf文件

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

请读最后一段

我有一个页面,我应该在其中显示一些媒体数据。 为此,我使用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="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源代码,请共享此处理程序的端代码和客户端