我正在使用WebApi在网站上投放视频。我已经在所有主流桌面浏览器上测试了这一点,HTML5视频标签按预期播放视频。但是,我无法在iPhones(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"
它有效,所以我知道这不是编码问题。
我做错了吗?如果网址不以.mp4
结尾,我感觉移动safari不会请求视频src答案 0 :(得分:3)
以下是(some)可能导致您的文件不起作用的原因以及可能的解决方案:
controls="true"
,否则视频无法在iOS上播放。 source