我一直在为提供视频而编写的一段代码遇到了一些问题。代码如下:
public ResumingFileStreamResult GetMP4Video(string videoID)
{
if (User.Identity.IsAuthenticated)
{
string clipLocation = string.Format("{0}\\Completed\\{1}.mp4", ConfigurationManager.AppSettings["VideoLocation"].ToString(), videoID);
FileStream fs = new FileStream(clipLocation, FileMode.Open, FileAccess.Read);
ResumingFileStreamResult fsr = new ResumingFileStreamResult(fs, "video/mp4");
return fsr;
}
else
{
return null;
}
}
这是我的 HTML 代码:
<video controls preload poster="@Url.Content(string.Format("~/Videos/{0}_2.jpg", Model.VideoID))">
<source src="@Url.Action("GetMP4Video", "Video", new { videoID = Model.VideoID })" type="video/mp4" />
<source src="@Url.Action("GetWebMVideo", "Video", new { videoID = Model.VideoID })" type="video/webm" />
<object id="flowplayer" data="@Url.Content("~/Scripts/FlowPlayer/flowplayer-3.2.14.swf")" type="application/x-shockwave-flash" width="640" height="360">
<param name="movie" value="@Url.Content("~/Scripts/FlowPlayer/flowplayer-3.2.14.swf")" />
<param name="allowfullscreen" value="true" />
<param name="flashvars" value="config={'playlist':['@Url.Content(string.Format("~/Videos/{0}_2.jpg", Model.VideoID))',{'url':'@Url.Action("GetMP4Video", "Video", new { videoID = Model.VideoID })','autoPlay':false}]}" />
</object>
</video>
我的问题是这个设置似乎在我桌面上的所有浏览器中都可以正常工作,但是当我尝试使用我的 iPad 或 iPhone 加载页面时,它只会显示播放图标,其中有一条线,表示它无法播放。我尝试将 mp4 视频的源更改为指向 mp4 视频的直接链接,然后 iPad 立即开始播放。
为了使我的方法与iDevices兼容,我是否需要做一些我错过的特别事情?对此的任何帮助将不胜感激。