1

我正在尝试使用 Flowplayer 在可用的情况下允许 HTML5 视频,并在不支持时使用 Flash 后备。

这在 Firefox 和 Chrome 中运行良好,但是在 IE9 中找不到视频,而在 IE9 下它不支持视频。

是我做错了什么还是 IE 不支持 flowplayer?

4

3 回答 3

5

解决方案总结

我遇到了类似的问题,我想我已经解决了,所以也许这也会为您解决。我的问题最终是我的 .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>
于 2012-11-01T16:44:43.330 回答
2

这是一个似乎对我有用的解决方案....

基本上,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]-->
于 2012-10-28T12:39:58.637 回答
1

经过大量研究并且无法添加标题标签以强制兼容模式(因为我的视频在模式内)。我通过更改源标签使其适用于 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

于 2013-02-19T21:57:43.797 回答