IE 中的 Mediaelement.js 故障,没有闪回工作
Posted
技术标签:
【中文标题】IE 中的 Mediaelement.js 故障,没有闪回工作【英文标题】:Mediaelement.js malfunction in IE, no flashback works 【发布时间】:2011-09-05 15:47:26 【问题描述】:我在我的网站中使用了mediaelement.js
,我在示例中使用了一个带有 H.264 编解码器的 .mp4 文件,它在所有浏览器中都可以正常工作,但是当我发布地点。在我的本地主机上,它没有任何问题(flash fallback 效果很好),但在我的服务器上它不起作用。
我使用的代码是:
<!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" poster="http://www.teletica.com/html5/videos/precious.jpg" controls="controls" preload="none"></video>
<video 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 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" title="No video playback capabilities" />
</object>
</video>
<script type="text/javascript">
$('video, audio').mediaelementplayer();
</script>
玩家朝这个方向工作http://www.teletica.com/html5
。
【问题讨论】:
【参考方案1】:只是把它放在这里让其他人看到它,我尝试使用此代码
/*@cc_on
@if (@_jscript_version == 9)
mode: 'shim',
@end
@*/
我最终在 Internet Explorer 9 中遇到了问题,似乎浏览器正在制作我的视频的另一个实例,它可以播放其他所有内容,而我根本无法控制。我最终选择了这个。
if($.browser.msie && ($.browser.version == '8.0' || $.browser.version
== '7.0'))
options.mode = 'shim';
【讨论】:
【参考方案2】:由于您的问题仅存在于您的系统中,因此您的设置或 Flash 播放器可能存在问题。以下是您可以尝试的一些方法:
-
如果您有任何脚本正在运行,请尝试禁用这些脚本并再次播放视频。
如果您有任何二级 Flash 播放器,例如“Gnash”,请尝试删除它们。
您的闪存播放器可能已损坏的可能性很小。尝试重新安装。
如果这些都不起作用,请尝试清除 cookie、缓存、历史记录。
您也可以重新安装 Internet Explorer 并查看它是否有效。一切顺利! :)
【讨论】:
这不是对 OP 问题的回答。【参考方案3】:感谢一百万的调查工作和解决方案——我最终选择了稍微分离的代码
var options = ...
/*@cc_on
@if (@_jscript_version == 9)
options.mode = 'shim';
@end
@*/
$('video, audio').mediaelementplayer(options);
【讨论】:
【参考方案4】:我遇到了同样的问题,并在 another post:mode:shim
中发现了一个未记录的功能,具体来说,不知道它在做什么,但它似乎迫使所有浏览器重新使用 flash。
由于 chrome、ios 等都可以正常处理 html5 视频,我使用条件 cmets 来指定 IE9 并强制回退(flash 或 silverlight):
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...
【讨论】:
以上是关于IE 中的 Mediaelement.js 故障,没有闪回工作的主要内容,如果未能解决你的问题,请参考以下文章
Mediaelement.js - 想要删除所有控件 - 仅显示视频
mediaelement.js 音频播放器需要修复移动响应大小
MediaElement.js 更改视频 onclick 的来源
mediaelement.js - 具有固定最大尺寸的响应式视频