ashxハンドラを使用してmp4ファイルを提供しようとしていますが、Iphoneでは動作しません。しかし、Safari PCでも動作します。iphoneでC#ashxハンドラが動作しないmp4ビデオを提供します。
私は、これは(ASHX)の仕事をしたい:
<video width="100%" height="auto" controls=""><source type="video/mp4" src="play.ashx"></source></video>
の代わりに(MP4):ここで
<video width="100%" height="auto" controls=""><source type="video/mp4" src="play.mp4"></source></video>
は私のコードです:ここでは
public void ProcessRequest(HttpContext context)
{
context.Response.ClearContent();
context.Response.ClearHeaders();
var length = new System.IO.FileInfo(context.Server.MapPath("~/big_buck_bunny.mp4")).Length;
context.Response.CacheControl = "Public";
context.Response.AddHeader("Content-Length", length.ToString());
context.Response.ContentType = "video/mp4";
context.Response.WriteFile(context.Server.MapPath("~/big_buck_bunny.mp4"));
context.Response.Flush();
context.Response.Close();
}
は、ファイルがあればありますダウンロードしたい:http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4
これをやらなければならない理由は、クライアントがビデオへのアクセスを制御したいからです。
フィドラー情報(唯一の違い):
要求のiPhone:
User-Agent: AppleCoreMedia/1.0.0.9A405 (iPhone; U; CPU OS 5_0_1 like Mac OS X; en_us)
Accept: */*
Range: bytes=0-1
Accept-Encoding: identity
Connection: keep-alive
リクエストのSafariのWindows
User-Agent: QuickTime/7.7.1 (qtver=7.7.1;os=Windows NT 6.1Service Pack 1)
Pragma: no-cache
応答が同一である
iOS SafariとWindows Safariの違いを調べるために、Fiddlerを使用しましたか? –
どのようにアクセスを制御しようとしていますか? –
@ p.campbell投稿にいくつかのフィドラー情報を追加しました。正確に何を探すべきか教えていただけますか? –