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 を使用して 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 パラメータ値を除く)。Fiddler は .swf ファイルの両方の要求に対して同じ結果を示し、ブラウザーは (IE 開発ツールの [ネットワーク] タブなどで) どちらの場合もファイルがクライアントにダウンロードされたことを示します。ただし、ハンドラーの場合、フラッシュは表示されません。

4

3 に答える 3

1

Fiddlerは、.swfファイルに対する両方の要求に対して同じ結果を示します

FiddlerのResponseHeadersでは、ローカルファイルとASHXハンドラーの両方が同じものを返しContent-Type: application/x-shockwave-flashますか?

于 2012-12-21T01:23:39.350 に答える
0

解決しました!

ハンドラーでは、既存のファイルを直接参照する場合と同じ値を応答ヘッダーのパラメーターに設定していました。

今、私はこのすべての値を削除しました、そしてそれは機能します!私はまだ理由を理解できませんが、それは機能します:)

于 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 に答える