HTML5视频,如果没有.ogv文件,则返回flash

HTML5视频,如果没有.ogv文件,则返回flash,html,html5-video,Html,Html5 Video,如果没有必要的文件类型,我如何回退到flash视频播放器 例如,此代码: <video controls width="500"> <source src="<?= $mov ?>" type="video/mp4" /> <embed src="http://blip.tv/play/gcMVgcmBAgA%2Em4v" type="application/x-shockwave-flash" width="1024" height="

如果没有必要的文件类型,我如何回退到flash视频播放器

例如,此代码:

<video controls width="500">
    <source src="<?= $mov ?>" type="video/mp4" />
    <embed src="http://blip.tv/play/gcMVgcmBAgA%2Em4v" type="application/x-shockwave-flash" width="1024" height="798" allowscriptaccess="always" allowfullscreen="true"></embed>
</video>


您可以使用JavaScript来检测它:

(function (video) {
    if (!video.canPlayType || !video.canPlayType('video/mp4')) {
        // Flash fallback
    }
}(document.createElement('video')));

你真的应该包括一个
.ogv
文件,这不需要太多的努力,有这么多的视频转换器软件,你也可以找到在线转换器


如果你不想那么做的话 使用

什么是现代化? Modernizr将类添加到
元素中,允许您在样式表中针对特定的浏览器功能。使用它实际上不需要编写任何Javascript

你有没有想过在CSS中使用if语句来提供一些很酷的功能,比如
边框半径
?嗯,有了现代化,你就可以做到这一点!语法也非常直观:

.multiplebgs div p {
  /* properties for browsers that
     support multiple backgrounds */
}
.no-multiplebgs div p {
  /* optional fallback properties
     for browsers that don't */
}
Modernizr是一个小而简单的JavaScript库,它可以帮助您利用新兴的web技术(CSS3、HTML5),同时对可能还不支持这些新技术的旧浏览器保持良好的控制水平

Modernizr使用功能检测来测试当前浏览器是否具有即将推出的功能,如rgba()、边框半径、CSS转换等。这些功能目前正在跨浏览器实现,通过Modernizer,您可以立即开始使用它们,并通过一种简单的方法控制尚不支持它们的浏览器的回退

此外,Modernizer创建了一个自命名的全局JavaScript对象,其中包含每个特性的属性;如果浏览器支持该属性,则该属性的计算结果将为
true
,如果不支持,则该属性的计算结果将为
false

最后,Modernizer还增加了对HTML5元素样式和打印的支持。这允许您使用更多语义、前瞻性的元素,如
,而无需担心它们在Internet Explorer中无法工作

现代化者做不了什么 Modernizr不向浏览器添加缺少的功能;相反,它检测功能的本机可用性,并为您提供一种方法来保持对站点的良好控制,而不管浏览器的功能如何

但是,如果您对此感兴趣,您可能会想看看这里:


下面是一个使用视频格式回退和最终回退到Flash的完整示例:

只需添加另一个源标记


它会起作用……

Peek-a-boo!:)@trufa:Yes:),在该页面上写道:不幸的是,你不能轻易地选择向Firefox提供HTML5视频,而Flash会退回到Safari。Safari了解该元素,并希望找到合适的视频格式来加载。如果找不到一个,它将显示一个空播放器。因此基本上答案是否定的,这是无法做到的?如果你想要一个只使用HTML而不使用JavaScript的解决方案,那么Firefox看起来不会降级为Flash()。为了避免出现空的视频播放器,如果Firefox上未启用MP4支持,则需要添加OGG或WEBM文件。