【发布时间】:2014-04-10 07:25:55
【问题描述】:
我正在监控 HTML5 视频播放器的下载进度。 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 返回未定义)。它适用于我测试过的所有其他浏览器(包括 Chrome 和 FF)。
如果我输入来自共享服务器 url2to.mp4 的 URL,即使在 IE10/11 上它也会按预期返回 1(当然,如果您不在时间线中寻找,则返回 1)。 mp4 文件在麻烦的服务器上完全相同,因此我知道它不是来自文件格式问题。我尝试使用另一个格式良好的 mp4(来自我在两台服务器上托管的 videojs 的示例),它也导致了问题。
服务器端 - 我的 mime/类型似乎没问题 - 我在我的服务器上启用了部分支持(字节范围)内容(Ubuntu 服务器 12.04.3 LTS 上的 Apache 2.2.22)。尽管我可能认为这可能与 HTTP 字节范围支持客户端或服务器端的调整有关。
因为它只发生在 IE9/10/11 上,所以我对进一步调查的位置零领先。我确实在msdn上问过这个问题,但无济于事。
有人可以对此有所了解吗?
编辑:从问题中删除真实的视频网址。
谢谢
【问题讨论】:
标签: jquery apache internet-explorer http video