我正在监视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字节范围支持客户端或服务器端的调整有关。
以编程方式更改Firefox标题栏(如使用registry设置的IE)
使用Apache vhostconfiguration无法禁用IE兼容性模式
哪个是在WINDOWS中保存程序configuration文件的最佳位置?
build立一个垂直的IE浏览器栏(带对象)(如collections夹面板)
Rails 3查询string
因为它只发生在IE9 / 10/11上,所以我没有进一步的调查。 我没有问msdn的问题,但无济于事。
有人可以带来一些这样的灯光?
编辑 :删除问题的真实videourl。
谢谢
IE对hash改变做出额外的GET请求
用量angular器如何设置Internet Explorer的configuration?
通过ruby脚本更改Windows浏览器代理设置
什么是安装BHO最简单的方法
好的,我最终用2.2.22到2.4.9的完整安装Apache来修复它。 我这次从源代码编译,而不是从ubuntu服务器12.04.3 LTS采取默认包。 我不确定这个问题的确切原因,但我认为它涉及HTTP范围请求和响应IE 9/10/11和Apache的某些版本/设置之间不兼容。
总结我的疑难解答步骤对于任何人可能有类似的问题:
检查你的服务器适当的哑剧/类型
通配符CORS (msdn建议)
检查您的网络服务器支持范围请求/ 206部分内容 。 我用CURL来检查我的服务器上,它工作正常。 然而,从这个页面的示例PHP代码似乎表明,否则我认为是什么混淆的IE(范围标题正确地返回,但响应代码是200而不是CURL的206)。
有时似乎你需要从源代码(并从官方网站的可信赖的来源),而不是使用默认的软件包从操作系统。 即使在开始时可能需要一个步骤(尤其是如果您需要修复依赖关系),有时还需要更新 – 最终的结果可能值得您付出努力(我知道这里有优点和缺点)。
检查您的MP4文件格式:尝试从videojs举办示例 ,看看它是否效果更好。 您可能需要重新包装/重新转码 。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。