Javascript 如何使用youtube iframe api启动嵌入式视频

Javascript 如何使用youtube iframe api启动嵌入式视频,javascript,youtube-api,youtube-iframe-api,Javascript,Youtube Api,Youtube Iframe Api,我对编码是新手,我正在尝试学习如何使用youtube IFRAME来控制embded视频。以下代码主要来自youtube的api文档。我只添加了按钮和附加到它们的事件侦听器 有人能解释一下为什么我创建的“播放”按钮不能启动视频吗 //2。此代码异步加载IFrame播放器API代码。 var tag=document.createElement('script'); tag.src=”https://www.youtube.com/iframe_api"; var firstScriptTag=

我对编码是新手,我正在尝试学习如何使用youtube IFRAME来控制embded视频。以下代码主要来自youtube的api文档。我只添加了按钮和附加到它们的事件侦听器

有人能解释一下为什么我创建的“播放”按钮不能启动视频吗

//2。此代码异步加载IFrame播放器API代码。
var tag=document.createElement('script');
tag.src=”https://www.youtube.com/iframe_api";
var firstScriptTag=document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(标记,firstScriptTag);
// 3. 此函数用于创建(和YouTube播放器)
//API代码下载后。
var播放器;
函数onyoutubeiframeapiredy(){
player=新的YT.player('player'{
高度:'250',
宽度:“300”,
videoId:'M7lc1UVf VE',
活动:{
“onReady”:onPlayerReady,
}
});
}
// 4. 当视频播放器准备就绪时,API将调用此函数。
函数onPlayerReady(事件){
event.target.playVideo();
}
document.getElementById('pause')。onclick=function(){
player.pauseVideo();
};
document.getElementById('play')。onclick=function(){
player.playVideo();
};

暂停
玩

iFrame API的文档似乎已经过时或完全错误

应该初始化播放器onyoutubeiframeapiredy()的函数永远不会启动,因此单击播放/暂停按钮将无法工作,因为变量player未定义

为了解决这个问题,您必须等待加载到新创建的
元素中的脚本完成加载,并且在回调函数中,您需要通过调用YT组件自己的ready()函数来初始化YT组件。这在任何地方都没有提到

好吧,去掉完整的onYouTubeIframeAPIReady函数,并用以下函数替换它:

tag.onload = function() {

  YT.ready(function() {
    player = new YT.Player('player', {
      height: '250',
      width: '300',
      videoId: 'M7lc1UVf-VE',
      events: {
        'onReady': onPlayerReady,
      }
    });
  });

};