我正在监视HTML5video播放器的下载进度。 Windows 8 / 8.1的IE 10/11正在给我带来麻烦。 这里是我的代码和之后的问题的解释:
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script> <video id="myVideo" width="640" height="360" controls> <source src="pathto.mp4" type='video/mp4; codecs="avc1.42E01E,mp4a.40.2"' /> </video> <script type="text/javascript"> var video= $('#myVideo')[0]; var videoJ= $('#myVideo'); function doUpdateProgress(){ console.log(video.buffered.length); } videoJ.on('progress', doUpdateProgress); videoJ.on('canplay', doUpdateProgress); </script>
问题是我的服务器上的URL url1to.mp4 video.buffered.length在IE 10/11中始终返回0(IE9返回未定义)。 它在我testing过的所有其他浏览器(包括Chrome和FF)上都能正常工作。
如果我从共享服务器url2to.mp4中input一个URL,那么即使在IE10 / 11上,它也会返回1(如果你不在时间线上查找的话)。 mp4文件是完全相同的麻烦服务器,因此我知道它不是来自文件格式问题。 我尝试了另一个格式良好的mp4(我从两个服务器上托pipe的videojs的样本),也导致了这个问题。
服务器端 – 我的mime /types似乎没问题 – 我的服务器上启用了部分支持(字节范围)内容(Ubuntu服务器12.04.3 LTS上的Apache 2.2.22)。 虽然我也许认为这可能与HTTP字节范围支持客户端或服务器端的调整有关。
因为它只发生在IE9 / 10/11上,所以我没有进一步的调查。 我没有问msdn的问题,但无济于事。
有人可以带来一些这样的灯光?
编辑 :删除问题的真实videourl。
谢谢
好的,我最终用2.2.22到2.4.9的完整安装Apache来修复它。 我这次从源代码编译,而不是从Ubuntu服务器12.04.3 LTS采取默认包。 我不确定这个问题的确切原因,但我认为它涉及HTTP范围请求和响应IE 9/10/11和Apache的某些版本/设置之间不兼容。
总结我的疑难解答步骤对于任何人可能有类似的问题: