Asp.net mvc ASP.NET MVC中的范围请求-无法使用Google浏览器和Opera播放
我正在使用这个库,我正在使用这个插件来播放视频 请遵循以下代码: 控制器:Asp.net mvc ASP.NET MVC中的范围请求-无法使用Google浏览器和Opera播放,asp.net-mvc,lib.web.mvc,Asp.net Mvc,Lib.web.mvc,我正在使用这个库,我正在使用这个插件来播放视频 请遵循以下代码: 控制器: [HttpGet] public ActionResult StreamUploadedVideo() { byte[] test = null; using (var ctx = new Entities()) { var result = ctx.Table.Where(x => x.Field == 4).FirstOrDefault();
[HttpGet]
public ActionResult StreamUploadedVideo()
{
byte[] test = null;
using (var ctx = new Entities())
{
var result = ctx.Table.Where(x => x.Field == 4).FirstOrDefault();
test = result.Movie;
return new RangeFileContentResult(test, "video/mp4", "Name.mp4", DateTime.Now);
}
}
<video id="my-video" class="video-js" controls preload="auto" width="640" height="264" poster="MY_VIDEO_POSTER.jpg" data-setup="{}">
<source src="@Url.Action("StreamUploadedVideo","Controller")" type='video/mp4'>
<p class="vjs-no-js">
To view this video please enable JavaScript, and consider upgrading to a web browser that
<a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
</p>
</video>
查看:
[HttpGet]
public ActionResult StreamUploadedVideo()
{
byte[] test = null;
using (var ctx = new Entities())
{
var result = ctx.Table.Where(x => x.Field == 4).FirstOrDefault();
test = result.Movie;
return new RangeFileContentResult(test, "video/mp4", "Name.mp4", DateTime.Now);
}
}
<video id="my-video" class="video-js" controls preload="auto" width="640" height="264" poster="MY_VIDEO_POSTER.jpg" data-setup="{}">
<source src="@Url.Action("StreamUploadedVideo","Controller")" type='video/mp4'>
<p class="vjs-no-js">
To view this video please enable JavaScript, and consider upgrading to a web browser that
<a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
</p>
</video>
若要查看此视频,请启用JavaScript,并考虑升级到Web浏览器
问题:当我更改视频时间(例如:将时间从1:00更改为10:00分钟)时,我会遇到以下问题:
谷歌浏览器:网络错误导致媒体下载部分失败。
Opera:由于损坏问题或您的浏览器不支持使用的功能,媒体播放被中止。
图片:
其余的浏览器都很好。谷歌和Opera发布了最新版本,日期为2017年4月7日
- 微软边缘-正常
- 火狐-好的
- Internet Explorer-好的
- Opera错误
- 谷歌-错误
有什么解决方案吗?当您使用
DateTime时,您的代码出现问题。现在用于modificationDate
的问题,该问题用于生成ETag
和上次修改的标题。由于Chrome(Chrome和opera背后的引擎)范围请求可以是有条件的(这意味着如果匹配,则它们可以包含,,,如果不匹配,则它们可以包含,,,如果自
以来进行了修改,如果自
以来未进行修改,则会导致412预处理失败
,而不是200 OK
或206部分内容
。如果基础内容没有改变,那么应该使用相同的日期,类似这样的日期
[HttpGet]
public ActionResult StreamUploadedVideo()
{
byte[] test = null;
DateTime lastModificationDate = DateTime.MinValue;
using (var ctx = new Entities())
{
var result = ctx.Table.Where(x => x.Field == 4).FirstOrDefault();
test = result.Movie;
lastModificationDate = result.LastModificationDate;
}
return new RangeFileContentResult(test, "video/mp4", "Name.mp4", lastModificationDate);
}
如果你是tpeczekHi tpeczek,asp.net core是否有RangeFileContentResult?@Matheusiranda我在一篇博客文章中回答了你同样的问题。好的,我在你的博客上问了另一个问题,请看。