Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firefox HTML5视频和降级?_Firefox_Video_Html_Accessibility_Firefox3.5 - Fatal编程技术网

Firefox HTML5视频和降级?

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

我一直在玩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 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"');
}