0

私のWebサーバーには、という名前のビデオファイルがあります03.mp4
以下のコードを使用してそのファイルを提供するページ(videoserver.aspx)があります

Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment; filename=video.mp4");
Response.TransmitFile(Server.MapPath("03.mp4"));
Response.End();

これらの2つの呼び出しの違いは何ですか?
1:http://localhost/media/03.mp4
2:http://localhost/media/videoserver.aspx?q=03

ブラウザでこれらのURLを直接指定すると、どちらの場合も[保存]ダイアログが表示されます。
SWFObjectを含む別のWebページがあります。入力としてビデオを消費します。Ok。URL 1をフィードすると、ビデオが読み込まれます。
URL 2をフィードすると、ビデオが読み込まれません。

なぜこの違い?クエリ文字列に基づいて消費者に提供するビデオを動的に変更できるため、URL2をお勧めします。

4

2 に答える 2

0

したがって、私が SWFObject の初心者であることを証明しています。
私が言及していた SWFObject は Camtasia によって提供されたもので、FLashVars を介して mp4 ファイルを受け入れます。
問題は、「URL 1 を受け入れたのに、なぜ URL 2 を受け入れなかったのか?」ということです。答えは、URL 2 が で終わっていませんでした.mp4
そして、私の問題の解決策は、*/media/*.mp4パスを受け入れて適切なファイルのコンテンツを返すハンドラーを作成することでした。これは、私の場合は DB からフェッチされます。

于 2012-07-06T04:47:05.677 に答える
0

新しい HTML5 要素を含む多くのビデオ プレーヤーは、HTTPヘッダー<video>を使用したいわゆるバイト範囲リクエストのサポートを必要とします。Rangeこれは通常、少し自尊心のある HTTP サーバーに既に組み込まれています。基本的に、要求された URL がバイト範囲要求をサポートしていることをクライアントに通知するために、サーバーは応答に戻り、仕様に従って要求されたバイト範囲を正確に応答に返すことによって、すべての受信要求Accept-Ranges: bytesを処理できるようになっています (参照)。詳細については、ヘッダーRangeの最初のリンクを参照してください)。Range

したがって、HTTP サーバーに設計された仕事をさせるのではなく、HTTP 応答処理を完全に自分の手で行うことを選択した場合は、これを慎重に考慮する必要があります。

于 2012-06-27T22:41:16.113 に答える