HTML5 ビデオ タグで非常に奇妙な問題が発生しています。ポイントは、ブラウザでビデオを表示する必要があることです (それを変更することはできません。顧客はそれを HTML5 にしたいと考えています)。それで、私はそれがどのように機能するかについて潜んでいて、適切に機能するにはRangeヘッダーが必要であることを知り、それを続けるために小さなパーサーを書きました。基本的に、すべてが標準であり、適切なヘッダー/ボディ/その他を返します...使用するヘッダーのリストは次のとおりです
context.Response.StatusCode = 206;
if(begin == 0 && end == total)
context.Response.StatusCode = 200;
context.Response.ContentType = "video/mp4";
context.Response.AddHeader("Accept-Ranges", "bytes");
context.Response.AddHeader("Content-Range", String.Format("bytes {0}-{1}/{2}", begin, end, total));
context.Response.AddHeader("Content-Disposition", "inline;");
context.Response.AddHeader("Content-Transfer-Encoding", "binary");
私がcurlで見たように、応答は適切で、バイトは本来のように送信されますが、問題は、ブラウザが(何らかの理由で)「Range: bytes=0-」(および約18683バイトを受信)で最初のリクエストを送信した後、送信を開始することです「範囲:バイト:6865374-」(番号はランダムで、ファイルの末尾近くにあります)のリクエストでは、ファイルの中間部分は受信を要求されないため、何も機能しません。サーバーは、「スレッドの終了またはアプリケーションの要求により、I/O 操作が中止されました」と言っています。ブラウザがサーバーとの接続を閉じているためだと思いますが、それについてはわかりません。素晴らしいことは、IE (驚き!) が正常に動作していることです。ただし、最初に mp4 ファイル全体をダウンロードしてから再生するだけです。私はすでにそれをどうするかわかりません。何かアイデアはありますか?