如何让YouTube API加载onclick?

时间:2016-12-12 22:54:38

标签: javascript jquery html youtube youtube-api

我正在使用YouTube Iframe,如下所示。我想在API加载后立即点击按钮来加载我的播放器。

我创建了一个系统,我的网站用户可以选择将哪些视频加载到播放列表中,因此我无法对YouTube视频ID进行硬编码。是否可以创建一个onclick函数来触发加载播放器的事件?如果是这样,怎么??

非常感谢!

<script>
  // 2. This code loads the IFrame Player API code asynchronously.
  var tag = document.createElement('script');

  tag.src = "https://www.youtube.com/iframe_api";
  var firstScriptTag = document.getElementsByTagName('script')[0];
  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

  // 3. This function creates an <iframe> (and YouTube player)
  //    after the API code downloads.
  var player;
  function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
      height: '390',
      width: '640',
      videoId: 'M7lc1UVf-VE',
      events: {    //CAN I REPLACE THE ONREADY EVENT WITH ONE
        'onReady': onPlayerReady, //THAT FIRES ONCLICK? 
        'onStateChange': onPlayerStateChange 
      }
    });
  }

  // 4. The API will call this function when the video player is ready.
  function onPlayerReady(event) {
    event.target.playVideo();
  }

1 个答案:

答案 0 :(得分:1)

您可以执行以下代码

var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

var video_id = '' //Desired video ID
var player;
$('LOAD_BUTTON').on('click', function() {
  // Load player when LOAD_BUTTON is clicked
  player = new YT.Player('player', {
    height: '390',
    width: '640',
    videoId: video_id,
    events: {
      'onReady': onPlayerReady,
      'onStateChange': onPlayerStateChange 
    }
  });
});

function onPlayerReady(event) {
  $('PLAY_BUTTON').on('click', function() {
    // Play video when PLAY_BUTTON is clicked
    event.target.playVideo();
  });
}