首页 > 解决方案 > 为什么 Windows 更新 KB4343909 后我的视频无法在 IE 和 Edge 上加载?

问题描述

安装Windows 10 更新 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>

标签: javascripthtmlmicrosoft-edgevideo.js

解决方案


这里的问题似乎是preload="none". 更改它以preload="auto"修复 Edge 中的问题。

根据更新,它:

确保 Internet Explorer 和 Microsoft Edge 支持 preload="none" 标记。

我猜测为什么会这样,这是阻止用户加载视频(通过单击它),并选中networkState,但是 networkState 在开始加载视频后才变为 1,所以没有预加载,它本质上是死锁。无论如何,这就是理论。


推荐阅读