0

请阅读最后的编辑。

我有一个页面,我应该在其中显示一些媒体数据。为此,我使用 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>

就我而言,我应该通过一些 MediaHandler.ashx http 处理程序从 SQL 服务器获取媒体数据。当我获得音频(.mp3,.wma)或视频(.flv,.mp4)流时,这可以正常工作。但我遇到了 .swf 闪存文件的一些问题。对于这种类型的文件,我将其更改<object> type为“application/x-shockwave-flash”。在这种情况下,当我使用一些远程路径时,例如http://www.tizag.com/pics/example.swf,它可以正常工作:

<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="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 从数据库中获取文件时:

<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 参数值)。Fiddler 对 .swf 文件的请求显示相同的结果,并且浏览器显示(例如在 IE 开发工具的 Netwok 选项卡中)在这两种情况下文件已下载到客户端。但是在处理程序的情况下,没有显示闪光灯。

4

3 回答 3

1

Fiddler 对 .swf 文件的两个请求显示相同的结果

在 Fiddler 响应标头中,本地文件和 ASHX 处理程序是否返回相同的Content-Type: application/x-shockwave-flash

于 2012-12-21T01:23:39.350 回答
0

我已经解决了!

在处理程序中,我将 Response Header 的参数设置为与直接引用现有文件的情况相同的值。

现在,我刚刚删除了所有这些值,它可以工作了!我仍然不明白为什么,但它有效:)

于 2012-12-21T06:26:54.177 回答
0

尝试这个:

<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>

它对我有用

于 2012-12-19T13:31:48.290 回答