次のコードを使用して、サーバーから mp4 ファイルを読み取り、http 経由で送信しています。私のサーバー側は mvc4 コントローラーです。面白いことに、ビデオは Chrome で問題なくレンダリングされます。しかし、iOSデバイスでは何も得られないので、これは応答ストリームヘッダーの問題である可能性があると考えています. 不足しているものはありますか?
var stream = new FileStream(path, FileMode.Open, FileAccess.Read); var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StreamContent(stream) }; result.Content.Headers.ContentType = new MediaTypeHeaderValue("video/mp4"); result.Content.Headers.ContentRange = new ContentRangeHeaderValue(0, stream.Length); result.Content.Headers.Add("filename", fileName); return result;
手がかりが得られる場合、これは応答ヘッダーです。
Cache-Control:no-cache
Content-Length:2236480
Content-Range:bytes 0-2236480/*
Content-Type:video/mp4
Date:Fri, 24 May 2013 14:39:11 GMT
Expires:-1
filename:3.mp4
Pragma:no-cache
Server:Microsoft-IIS/7.5
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET