强制 HTML5 youtube 视频

Posted

技术标签:

【中文标题】强制 HTML5 youtube 视频【英文标题】:Force HTML5 youtube video 【发布时间】:2011-08-16 06:32:56 【问题描述】:

关于Youtube API Blog,他们正在试验新的HTML5视频播放器。

显然要在 html5 中播放视频,您必须使用 iframe 嵌入代码:

<iframe class="youtube-player" type="text/html"  
  src="http://www.youtube.com/embed/VIDEO_ID" frameborder="0">
</iframe>

但是如果客户端没有加入HTML5 Trial,即使客户端的浏览器支持HTML5视频,播放器也会自动退回到flash播放器中。

如果浏览器支持,如何强制播放 HTML5 视频,即使用户尚未参与 HTML5 试用?

否则如何禁用flash fallback?

编辑:

可以通过links to Youtube Video 强制 HTML 播放器,但我需要这种用于嵌入视频的功能。

【问题讨论】:

如果您要使用 js 检测 HTML5 功能,并相应地实现 youtube api 代码会怎样。或者我应该说,如果不支持 HTML5 视频,请不要实现 youtube api,因为它会求助于 Flash。 【参考方案1】:

我找到了解决方案:

你必须在 iframe 的 src 属性中添加html5=1

<iframe src="http://www.youtube.com/embed/dP15zlyra3c?html5=1"></iframe>

视频将显示为 HTML5(如果可用),或回退到 Flash 播放器中。

【讨论】:

嗯 - 现在它不起作用(相同的视频),很奇怪。我想知道它是否仅适用于某些 youtube 服务器? 在非嵌入视频末尾添加&amp;html5=1 时不起作用:/ &amp;html5=1(或&amp;html5=true或类似的东西)添加到超链接(不是iframe嵌入视频)的末尾似乎在没有Flash的IE中不起作用。 带有广告的 YouTube 视频将自动使用 Flash 播放器 我认为所有的报告都有偏见。没有人说他/她是否在“youtube html5 beta”中,这可能是关键因素。当我离开 html5 测试版时,似乎 ?html5=1 什么都不做。每个视频都带有 Flash。【参考方案2】:

YouTube 视频是否以 HTML5 格式播放取决于每个浏览器的 https://www.youtube.com/html5 设置。 Chrome 更喜欢自动播放 HTML5,但即使是最新的 Firefox 和 Internet Explorer,如果它安装在机器上,它仍然使用 Flash。

参数 html5=1 现在(不再)不做任何事情。 (注意它甚至没有在https://developers.google.com/youtube/player_parameters 列出。)

【讨论】:

刚查了一下,我在youtube.com/html5中选择了HTML5播放器,但是如果&html5=1没有指定为嵌入播放器的参数,则加载flash,当我指定参数时HTML5播放器是加载。操作系统:Linux、Firefox 33 64 位。 我刚刚在 Firefox 33.0.2 中测试了html5=1,它运行良好(并且不需要用户在 YouTube 上启用 HTML5 设置)。没有它,YouTube 默认发送 Flash 版本。 该参数仍然有效,但在 html5 页面上启用它会使 youtube 默认为 html5,这样会更好。【参考方案3】:

我尝试使用 iframe 嵌入代码并出现了 HTML5 播放器,但是由于某种原因 iframe 完全破坏了我的网站。

我弄乱了旧的对象嵌入代码,它工作得非常好。 因此,如果您对 iframe 有问题,这是我使用的代码:

<object  >
<param name="movie" value="http://www.youtube.com/embed/VIDEO_ID?html5=1&amp;rel=0&amp;hl=en_US&amp;version=3"/>
<param name="allowFullScreen" value="true"/>
<param name="allowscriptaccess" value="always"/>
<embed   src="http://www.youtube.com/embed/VIDEO_ID?html5=1&amp;rel=0&amp;hl=en_US&amp;version=3" class="youtube-player" type="text/html" allowscriptaccess="always" allowfullscreen="true"/>
</object>

希望这对某人有用

【讨论】:

YouTube &lt;object&gt; 在 1 月底为 deprecated。请改用&lt;iframe&gt; &lt;object&gt; 仍然有效,实际上 iframe 只是包含它。【参考方案4】:

如果您使用 iframe embed api,您可以将 html5:1 作为 playerVars 参数之一,如下所示:

player = new YT.Player('player', 
    height: '390',
    width: '640',
    videoId: '<VIDEO ID>',
    playerVars: 
        html5: 1
    ,
);

完全有效。

【讨论】:

【参考方案5】:

内联标签用于向当前html元素添加另一个文档src。

在您的情况下,一个 youtube 的视频,我们需要在链接外部为浏览器指定 html 类型(4 或 5)

所以将 ?html=5 添加到链接的末尾.. :)

【讨论】:

以上是关于强制 HTML5 youtube 视频的主要内容,如果未能解决你的问题,请参考以下文章

Youtube iframe 嵌入:强制 Flash?

将 Youtube 视频源显示为 HTML5 视频标签?

html5 (youtube) 视频标签说明

Youtube 的 HTML5 视频播放器如何控制缓冲?

YouTube 视频的播放速度控制? HTML5?

Chromecast + Youtube 嵌入 + HTML5 视频标签 = 错误