播放 youtube 视频的 javascript 不起作用

Posted

技术标签:

【中文标题】播放 youtube 视频的 javascript 不起作用【英文标题】:javascript to play youtube video isn't working 【发布时间】:2012-03-30 19:55:55 【问题描述】:

html

<html>
<head>
<style type="text/css">    body     background-color: transparent;    color: white;        
</style>    
</head>
<body style="margin:0">    
<embed id="yt" src="http://www.youtube.com/v/6eK-W32IME0?fs=1&hl=en_US&enablejsapi=1" type="application/x-shockwave-flash"  ></embed>
</body>
</html>

我正在运行以尝试播放视频的代码是

var yt = document.getElementById("yt");
yt.playVideo();

我得到的 JS 错误是

TypeError: Object #<HTMLEmbedElement> has no method 'playVideo'

但似乎其他人都是这样做的。有什么关系?

** 编辑 **

jsfiddle

** 编辑 **

The current JSFiddle 现在可以在 pc/mac 上正常运行,但不能在 iPad 上运行。

【问题讨论】:

对我来说没问题jsfiddle.net/A3jgy。你在什么浏览器中测试? @BogdanEmilMariesan jsfiddle.net/A3jgy/3 更像是我所看到的。嵌入效果很好,但临时播放按钮不行。 @Jackson 我已经用一个使用object 元素的工作示例更新了我的原始答案。 【参考方案1】:

我认为您需要将&amp;enablejsapi=1 添加到引用&lt;embed&gt; 对象中视频的URL 的查询字符串中。

另外,尝试用&lt;object&gt; 元素替换您的&lt;embed&gt; 元素。这是working example。

关于 ios/Mobile Webkit 的说明:

显然,根据this answer,Apple 明确禁止在 Safari 或其他 Mobile Webkit 浏览器中自动控制嵌入式媒体,要求 iOS 用户直接与视频对象交互以启动播放。这适用于 objectembed 元素,以及 HTML5 videoaudio 元素。

【讨论】:

在电脑上效果很好,但由于某种原因在 iPad 上效果不佳。它必须在那里工作,所以我很困惑 atm。 嗯,那是因为 iOS 设备不支持 Flash。时期。如果您使用 iframe 在您的页面上嵌入视频,YouTube 将智能地检测观众的设备并为每个设备提供相应版本的视频。但是,然后,您将失去您尝试实现的脚本控制。长话短说:您需要检测网页上的 Flash 功能并根据测试结果生成 objectvideo 标记。 我应该指出,播放的视频实际上可以在 ipad 上运行(youtube 在这里做了一些花哨的事情)。只是playVideo 功能在 ipad 中有点失效。 显然,根据这个答案 (***.com/a/9028877/1030243),Apple 明确禁止自动控制 Safari 中的嵌入式媒体,要求 iOS 用户直接与视频对象交互才能启动播放。 Aaron,也许您应该将您的最后一条评论移至答案。这是一条重要的信息。该死的Apple,即使在Chrome中我们也无法从外部启动播放。【参考方案2】:

你没有加载 JS api 试试这个:

<embed id="yt" src="http://www.youtube.com/v/6eK-W32IME0?fs=1&hl=en_US&enablejsapi=1" type="application/x-shockwave-flash"  ></embed>   

要了解有关 youtubes JS api 的更多信息,请查看https://developers.google.com/youtube/js_api_reference

【讨论】:

嗯。还是一样的。 (新代码添加到我的原始示例中)

以上是关于播放 youtube 视频的 javascript 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Youtube API如何在视频结束时从0秒开始播放视频?框架,Javascript

播放 youtube 视频的 javascript 不起作用

javascript 允许镜像Youtube视频播放

YouTube“书呆子统计”如何运作。或者如何从 JavaScript 获取正在播放的视频的编解码器信息

选择某个CSS时,是否可以播放YouTube视频?

javascript 一种阻止播放YouTube,Vimeo和HTML5视频的简单方法。