我在我的网站中使用了mediaelement.js
,例如,我使用了一个带有H.264编解码器的.mp4文件,在所有浏览器中都能很好地工作,但当我发布网站时,它在任何版本的Internet Explorer中都不工作。在我的本地主机上,它没有任何问题(flash回退工作得很好),但在我的服务器上它不工作。
我使用的代码是:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>VIDEO HTML5</title>
<script type="text/javascript" src="player_files/jquery.js"></script>
<script type="text/javascript" src="player_files/mediaelement-and-player.min.js"></script>
<link href="player_files/mediaelementplayer.min.css" rel="Stylesheet" />
</head>
<body>
<video id="video1" src="http://www.teletica.com/html5/videos/precious.mp4" width="640" height="360" poster="http://www.teletica.com/html5/videos/precious.jpg" controls="controls" preload="none"></video>
<video width="640" height="360" id="video2" poster="videos/precious.jpg" controls="controls" preload="none">
<source type="video/mp4" src="http://teletica.com/html5/videos/precious.mp4" />
<source type="video/webm" src="http://teletica.com/html5/videos/precious.webm" />
<object width="640" height="360" type="application/x-shockwave-flash" data="player_files/flashmediaelement.swf">
<param name="movie" value="player_files/flashmediaelement.swf" />
<param name="flashvars" value="controls=true&file=http://teletica.com/html5/videos/precious.mp4" />
<img src="player_files/precious.jpg" width="640" height="360" alt="Here we are" title="No video playback capabilities" />
</object>
</video>
<script type="text/javascript">
$('video, audio').mediaelementplayer();
</script>
玩家在这个方向http://www.teletica.com/html5
上工作。
我也遇到了同样的问题,在另一篇文章中发现了一个未记录的功能:mode:shim
~不确定它具体做了什么,但它似乎迫使所有浏览器都使用flash。
由于chrome、ios等都能正常使用html5视频,我使用了条件注释来指定IE9并强制回退(闪光或银色灯光):
var player = new MediaElementPlayer('video', {
/*@cc_on
@if (@_jscript_version == 9)
mode: 'shim',
@end
@*/
// remove or reorder to change plugin priority
plugins: ['flash','silverlight'],
// etc...
}
非常感谢您的调查工作和解决方案——我最终选择了的稍微分离一些的代码
var options = {...}
/*@cc_on
@if (@_jscript_version == 9)
options.mode = 'shim';
@end
@*/
$('video, audio').mediaelementplayer(options);
只是把它放在这里,让其他人看到它,我试着使用这个代码
/*@cc_on
@if (@_jscript_version == 9)
mode: 'shim',
@end
@*/
我最终在InternetExplorer9中遇到了问题,似乎浏览器正在制作我的视频的另一个实例,该实例播放了其他所有内容,而我根本无法控制。我最终还是选择了这个。
if($.browser.msie && ($.browser.version == '8.0' || $.browser.version
== '7.0'))
options.mode = 'shim';
由于您的问题仅在系统中存在,因此您的设置或flash播放器可能存在问题。这里有一些你可以尝试的东西:
- 如果有任何脚本正在运行,请尝试禁用这些脚本并再次播放视频
- 如果你有任何次要的闪光播放器,如"Gnash",尝试删除它们
- 您的flassh播放器可能已损坏。请尝试重新安装
- 如果这些都不起作用,请尝试清除cookie、缓存和历史记录
您也可以重新安装Internet Explorer,看看它是否正常工作。祝你一切顺利!:)