Firefox HTML5视频和降级?
我一直在玩HTML5视频标签,我很困惑,当你不能支持编解码器时,如何最好地降级 对于根本不支持视频标签的旧浏览器(或IE),这非常简单:Firefox HTML5视频和降级?,firefox,video,html,accessibility,firefox3.5,Firefox,Video,Html,Accessibility,Firefox3.5,我一直在玩HTML5视频标签,我很困惑,当你不能支持编解码器时,如何最好地降级 对于根本不支持视频标签的旧浏览器(或IE),这非常简单: <video width="320" height="240"> <source src="vid.ogv" type='video/ogg'> <source src="vid.mp4" type='video/mp4'> <object> <!-- Embed Flash video h
<video width="320" height="240">
<source src="vid.ogv" type='video/ogg'>
<source src="vid.mp4" type='video/mp4'>
<object>
<!-- Embed Flash video here to play mp4 -->
<object>
</video>
他们将失败,并将收到Flash版本(或其他替代版本,如图像!)
如果浏览器确实支持标签,但不支持编解码器(例如FireFox 3.5),而我不能支持OGG(可能是因为我已经拥有大量的H.264档案),该怎么办
我在Firefox3.5中得到的只是一个带有x的灰色框。对于FireFox用户来说,这并不是一个很好的用户体验!我只能考虑使用JavaScript检查FF3.5并更改DOM!!这真的是又一次的坏老头吗。。。或者我是否遗漏了规范的某些部分,比如“novideo”标签?优雅降级的一个重要部分是查询功能。。。潜入HTML5是一个伟大的阅读。。。具体来说,请看下面的例子。相关代码如下:
function supports_h264_baseline_video() {
if (!supports_video()) { return false; }
var v = document.createElement("video");
return v.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"');
}
注意:这确实需要DOM检查,但需要功能检查,而不是浏览器签名检查。这是正确的做法
一旦你知道浏览器是否支持,你就可以显示你的视频标签,或者打开一个灯箱,或者根据你的需要重定向。这表明Firefox 3.5只能播放OGG。如果你真的不想添加OGG,你可能想添加一个flash版本。VfE也不使用JavaScript,因此可能值得研究。解决这个问题的一个非常好的方法是使用modernizer js库。它非常容易使用且快速。它可以在用户的浏览器中检查HTML5功能。请访问此处的网站:这肯定比检查浏览器签名要好,但它仍然比我希望的新标准中的javascript多一点……同意,这是不幸的。由于HTML没有分支概念,我认为这里没有办法避免javascript。现有的非脚本方法依赖于连续的兼容性层,但HTML5视频在这一点上失败了,因为编解码器分离,将其“烘焙”到语言中是很粗糙的。请注意,这不适用于Android,它不支持正确的canPlayType方法。VfE仍然需要OGG版本,因为Firefox不会默认为Flash版本,或者其他任何版本,如果你没有OGG,那肯定是一个很好的解决方案,但我的问题是在支持HTML 5的浏览器中使用标记来重申在底部的评论中所说的话:如果指定了具有正确MIME类型的OGG源,Firefox只会退回到flash视频。
function supports_h264_baseline_video() {
if (!supports_video()) { return false; }
var v = document.createElement("video");
return v.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"');
}