我正在尝试在网站上使用 MediaElement.js,并且在除 IE 之外的所有浏览器中一切都运行良好,尤其是 IE9(目前我不太关心支持低于 IE9)。我正在动态填充我读过的 ME 可能会导致 IE 出现问题,但我只是不确定是否有解决方法。我这样做的原因是因为这是一个投资组合站点,其中所有项目数据都通过 getJSON 调用加载,一旦加载,所有项目都会填充适当的数据并动态创建。有几个视频项目。我已经将代码简化为我项目之外的示例,该示例基本上经历了相同的行为。如果我只是写出 HTML 并在 JS 中控制它可以工作,但是当我通过 JS 创建 HTML 然后尝试播放时,我得到错误日志(在代码中创建 ME 播放器)。这是代码:
$(function() {
var details = {
width: 640,
height: 480,
src: 'work/television/1'
},
$body = $('body'),
$vid = $('<video width="' + details.width + '" height="' + details.height + '" preload="none" id="vidPlayer1"></video>'),
$mp4 = $('<source src="' + details.src + '.mp4" type="video/mp4" title="mp4">'),
$webm = $('<source src="' + details.src + '.webm" type="video/webm" title="webm">'),
$ogg = $('<source src="' + details.src + '.ogv" type="video/ogg" title="ogg">'),
$flash = $('<object width="' + details.width + '" height="' + details.height + '" type="application/x-shockwave-flash" data="swf/flashmediaelement.swf"><param name="movie" value="swf/flashmediaelement.swf"><param name="flashvars" value="controls=true&file=' + details.src + '.mp4"></object>'),
$error = $('<p>The available video formats are not supported by your browser. :(</p>'),
$controls = $('<div class="videoControls playBtn"></div>');
$body.append($controls);
$vid.append($mp4);
$vid.append($webm);
$vid.append($ogg);
$vid.append($flash);
$vid.insertAfter($controls);
var vidPlayer = new MediaElementPlayer('#vidPlayer1', {
features: [],
// mode: 'shim',
pluginPath: 'swf/',
success: function(mediaElement) {
console.log('success', mediaElement);
},
error: function() {
console.log('Error loading player. Please try again.');
}
});
$body.on('click', function(evt) {
vidPlayer.play();
});
});
任何帮助将不胜感激。