0

我要为这个问题发疯了。我有一个脚本可以更改<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 之外的所有浏览器。我是什么做的?我已经尝试过直接修改标签的src属性<video>,但这似乎不起作用。我什至尝试删除整个<video>标签并添加一个带有更新源的新标签。没有雪茄。

这可能是题外话,但我正在考虑我必须添加一些 .htaccess hack 以使其工作的可能性。任何建议将不胜感激。

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

编辑:开发人员工具上的网络选项卡给了我206 partialhttp 请求的结果。这很可能是编码兼容性问题。如果事实证明是这样,我可能会很快结束这个问题。

4

1 回答 1

1

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

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

最后但同样重要的是 - 利用 caniuse.com 检查浏览器支持。对于初学者,这里是 mp4 的链接:http: //caniuse.com/mpeg4

于 2013-08-07T20:16:04.580 回答