Сбой Mediaelement.js в IE, флэшбэк не работает
Я использовал mediaelement.js на своем сайте, я использовал для примера файл.mp4 с кодеком H.264, хорошо работает во всех браузерах, но не работает ни в одной версии Internet Explorer, когда я публикую сайт на моем локальном доне. У меня нет проблем (резервный флэш-накопитель работает хорошо), но на моем сервере не работает.
Код, который я использовал:
<!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"
4 ответа
У меня была такая же проблема, и я нашел недокументированную функцию в другом посте: mode:shim
Я не уверен, что именно он делает, но, похоже, заставляет все браузеры использовать флэш-память.
Так как chrome, ios и другие работали правильно с html5-видео, я использовал условные комментарии, чтобы указать 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...
}
Огромное спасибо за исследовательскую работу и решение - я закончил с немного более отдельным кодом
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
@*/
И у меня в конечном итоге возникли проблемы с Internet Explorer 9, похоже, что браузер создавал другой экземпляр моего видео, который воспроизводился поверх всего остального, и что я вообще не мог его контролировать. Я закончил тем, что пошел с этим вместо этого.
if($.browser.msie && ($.browser.version == '8.0' || $.browser.version
== '7.0'))
options.mode = 'shim';
Так как ваша проблема сохраняется только в вашей системе, могут быть проблемы с настройками или флеш-плеером. Вот несколько вещей, которые вы можете попробовать:
- Если у вас запущены какие-либо сценарии, попробуйте отключить эти сценарии и снова воспроизвести видео.
- Если у вас есть дополнительные флэш-плееры, такие как "Gnash", попробуйте удалить их.
- Существует небольшая вероятность того, что ваш флэш-плеер может быть поврежден. Попробуйте переустановить его.
- Если ничего из этого не работает, попробуйте очистить куки, кеш, историю.
Вы также можете переустановить Internet Explorer и посмотреть, работает ли он. Всего наилучшего!:)