【发布时间】:2015-09-01 01:40:54
【问题描述】:
我正在使用 WebApi 在网站上提供视频。我已经在所有主要的桌面浏览器上对此进行了测试,并且 HTML5 Video 标签可以按预期播放视频。但是,我无法让它在 iPhone (Mobile Safari) 上运行。 Get() 方法即使在按下播放按钮后也不会被调用。
WEBAPI 代码
public HttpResponseMessage Get()
{
var path = System.Web.Hosting.HostingEnvironment.MapPath("~/Content/testbw2.mp4");
var stream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
if (Request.Headers.Range != null)
{
try
{
HttpResponseMessage partialResponse = Request.CreateResponse(HttpStatusCode.PartialContent);
partialResponse.Content = new ByteRangeStreamContent(stream, Request.Headers.Range, _mediaType);
return partialResponse;
}
catch (InvalidByteRangeException invalidByteRangeException)
{
return Request.CreateErrorResponse(invalidByteRangeException);
}
}
else
{
HttpResponseMessage fullResponse = Request.CreateResponse(HttpStatusCode.OK);
fullResponse.Content = new StreamContent(stream);
fullResponse.Content.Headers.ContentType = _mediaType;
return fullResponse;
}
}
HTML
<video controls>
<source src="http://localhost/WebApplication24/api/range" type="video/mp4">
Your browser does not support the video tag.
</video>
如果我将视频 src 更改为直接指向文件...
src="http://localhost/WebApplication24/Content/testbw2.mp4"
它有效,所以我知道这不是编码问题。
我做错了什么吗?如果 url 不以 .mp4 结尾,我感觉移动 safari 不会请求视频 src
【问题讨论】:
标签: ios html5-video mobile-safari asp.net-web-api2