IE中的Mediaelement.js javascript错误

Rya*_*lio 0 javascript internet-explorer mediaelement.js

我正在使用MediaElement.js作为正在进行中的网站的HTML5视频播放器.它在Chrome,Safari和Firefox中运行良好,即使使用了后备播放器,但在Internet Explorer中我看到了Javascript错误:http://d.pr/Jsfo.它似乎没有加载我的海报,或我的播放器风格(在其他浏览器中工作正常).

播放器的代码是动态加载的,因为它出现在灯箱中,并且有多个视频可以在页面上播放.注入HTML的Javascript位于页面底部

您可以在http://mindsmack.ryangiglio.com上查看开发站点

小智 10

不幸的是,你不能在IE中动态插入HTML5标签,因为它会破坏它们的嵌套

<video>
   <source src="file.mp4">
   <source src="file.webm">
</video>
Run Code Online (Sandbox Code Playgroud)

<video />
<source src="file.mp4">
<source src="file.webm">
Run Code Online (Sandbox Code Playgroud)

然后MediaElement.js无法确定源文件的位置.

我的建议是将<video>标签放在页面上的永久位置,然后准备一个MediaElement对象

var player = new MediaElementPlayer('#video');
Run Code Online (Sandbox Code Playgroud)

然后当你准备播放视频时,只需打电话

// single MP4
player.setSrc('newfile.mp4');

// OR multiple
player.setSrc([{src:'newfile.mp4',type:'video/mp3'},{src:'newfile.webm',type:'video/webm'}]);

// load and play
player.load();
player.play();
Run Code Online (Sandbox Code Playgroud)

此外,您应该删除标记<object>内的嵌入HTML,<video>因为这仅适用于IE用户未启用JavaScript且您的应用需要JavaScript的情况.