安装Windows 10 update KB4343909后,我网站上加载的视频已停止加载。它们通过video.js加载,并且只保持readyState = 0和networkState = 0,而不会出现错误。
在Chrome,Firefox,Safari等上,一切仍然可以正常工作,而不是IE和Edge。
js代码看起来像这样:
var video_module = videojs("my-video");
video_module.ready(function(){
var myPlayer = this;
$('.video-js').append(loading);
});
video_module.load();
var loadingCheck = setInterval(function(){
if(video_module.networkState() >= 1){
$('.vjs-big-play-button').css('opacity', 1);
$('.loading-spinner').remove();
clearInterval(loadingCheck);
}
if(loadingCount === 15){
if(video_module.src() == '' || video_module.readyState() < 1){
video_module.dispose();
//Show timeout message...
clearInterval(loadingCheck);
}
}
loadingCount++;
}, 1000);
而html是这样的:
<video id="my-video" class="video-js vjs-default-skin" preload="none"
data-setup="{}">
<source src="my/video/url" type="video/mp4">
<p class="vjs-no-js">No HTML5 video message...</p>
</video>
这里的问题似乎是preload="none"
。将其更改为preload="auto"
修复了Edge中的问题。
根据更新,它:
确保Internet Explorer和Microsoft Edge支持preload =“none”标记。
我猜测为什么会这样做,这是因为这会阻止用户加载视频(点击它),检查networkState
,但是一旦开始加载视频,networkState只会变为1,所以没有一个预加载,它基本上是死锁。无论如何,这就是理论。