我正在尝试使用 Flowplayer 在可用的情况下允许 HTML5 视频,并在不支持时使用 Flash 后备。
这在 Firefox 和 Chrome 中运行良好,但是在 IE9 中找不到视频,而在 IE9 下它不支持视频。
是我做错了什么还是 IE 不支持 flowplayer?
我正在尝试使用 Flowplayer 在可用的情况下允许 HTML5 视频,并在不支持时使用 Flash 后备。
这在 Firefox 和 Chrome 中运行良好,但是在 IE9 中找不到视频,而在 IE9 下它不支持视频。
是我做错了什么还是 IE 不支持 flowplayer?
我遇到了类似的问题,我想我已经解决了,所以也许这也会为您解决。我的问题最终是我的 .mp4 视频文件的 MIME 类型被用作视频/mpeg。当视频作为 video/mp4 提供时,它会在 IE9 上正确加载。我没有测试 .ogg 文件,但我感觉问题很相似。
我有点困惑,因为我在flowplayer 演示页面和这个HTML5 视频播放器比较页面上看到了视频作品(在所有浏览器中)。然而,我觉得有点平反,因为他们自己的开发人员无法获得一致的负载,已作为错误报告的一部分提交,他们的“修复”演示也对我不起作用(但他们的主要演示是!) .
在完全镜像他们的设置并遵循设置文档之后,我的播放器仍然无法在 IE9 中运行,但可以在 Firefox、Chrome 和 IE8 中运行(带有 Flash 后备)。
我决定尝试从他们的服务器加载他们的视频,并且立即生效。我检查了 IE9 中的网络窗格,发现了 MIME 类型的差异。当 flowplayer 服务器将 .mp4 文件作为“video/mp4”提供时,我的服务器将 .mp4 文件作为“video/mpeg”提供。我知道 .mp4 文件类型只是一个容器,而视频文件取决于底层编码方案,但我感觉 IE9 只是在尝试基于 MIME 类型解码视频时很挑剔——它甚至不会尝试如果它不是它认为可以播放的东西,就播放它。我让网络管理员更改了 MIME 类型,之前失败的同一视频现在可以完美运行。
作为参考,这是我设置 HTML 的方式:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://releases.flowplayer.org/5.1.1/flowplayer.min.js"></script>
<div class="flowplayer is-splash">
<video preload="none">
<source src="http://stream.flowplayer.org/black/470x250.mp4" type="video/mp4" />
</video>
</div>
这是一个似乎对我有用的解决方案....
基本上,flowplayer 的 flash 后备似乎在 IE 中不起作用......
解决方案是使用旧的 Flowplayer flash 插件并使用 IE 条件标签,如下所示:
<!--[if IE]>
<a href="videos/file.mp4"
style="display:block;width:520px;height:330px"
id="player">
</a>
<script>
flowplayer("player", "/swf/flowplayer-3.2.15.swf");
</script>
<![endif]-->
<!--[if !IE]><!-->
<div class="flowplayer" data-swf="swf/flowplayer.swf" data-ratio="0.417">
<video>
<source type="video/mp4" src="videos/file.mp4"/>
<source type="video/ogg" src="videos/file.ogv"/>
</video>
</div>
<!--<![endif]-->
经过大量研究并且无法添加标题标签以强制兼容模式(因为我的视频在模式内)。我通过更改源标签使其适用于 IE9
<source type="video/mp4" src="video.mp4"></source>
到
<source type="text/html" src="video.mp4"></source>
我看到当视频没有在 IE9 中播放时,mp4 文件被重新渲染为 text/html 而不是 video/mp4 ......所以我只是尝试更改标签并且它有效!
我知道这没有任何意义......但是既然 IE 什么时候有意义?!所以,如果你不能在你的 php 文件 header('X-UA-Compatible: IE=EmulateIE8'); 像我的情况一样,尝试将 mp4 类型设置为 text/html