HTML5视频源不会在IE中成功更改

HTML5 video source will not successfully change in IE

本文关键字:成功 IE 视频 HTML5      更新时间:2023-09-26

我正为这个问题而发疯。我有一个脚本,它可以更改<video>标记的源,然后重新加载并播放它。问题是我无法在任何版本的Internet Explorer上使用它。

我有一个名为sequence.sources的视频源阵列,包含:

sequence.sources = ['video.webm', 'video.mp4', 'video.ogv'];

sequences对象是从另一个数组加载的,所以这就是它的动态方面。我用来更改视频源的功能如下:

var videoElem = document.getElementById('video');
// Remove all sources
while (videoElem.firstChild) {
    videoElem.removeChild(video.firstChild);
}
// Add new sources
for (var i = 0; i < sequence.sources.length; i++) {
   var srcElem = document.createElement('source');
   srcElem.setAttribute('src', sequence.sources[i]);
   videoElem.appendChild(srcElem);
}
// Initiate video
videoElem.load();
videoElem.play();

这在除IE之外的所有浏览器上都能完美运行。我该怎么办?我已经尝试过直接修改<video>标记的src属性,但这似乎不起作用。我甚至尝试删除整个<video>标签,并添加一个带有更新源的新标签。没有雪茄。

这可能偏离了主题,但我正在考虑是否必须添加一些.htaccess破解才能使其工作。如有任何建议,我们将不胜感激。

我最后的想法是,除了第一个来源之外,所有来源都有问题,不会播放。有什么方法可以检查它们与IE的兼容性吗?

EDIT:开发人员工具上的"网络"选项卡根据http请求为我提供206 partial。这很可能是编码兼容性问题。如果事实证明是这样的话,我可能很快就会结束这个问题。

问题是创建source节点,然后尝试更改src属性。这在IE中不起作用。只使用src属性。完整的解决方案可以在我的帖子中找到:https://stackoverflow.com/a/7905151/818732。。。试着在谷歌上搜索这些东西,并添加"stackoverflow"以获得最佳结果。

顺便问一下:你有没有试过直接将mp4文件作为属性(在html代码中)添加?如果是,但仍然不起作用,请检查服务器是否为.mp4文件(video/mp4)返回了正确的mime类型。

最后但同样重要的是,请使用caniuse.com来检查浏览器支持。对于初学者来说,以下是mp4的链接:http://caniuse.com/mpeg4