youtube iframe api没有暂停视频

时间:2017-02-27 21:30:06

标签: javascript video youtube-api slider youtube-iframe-api

我目前正在处理一个带有各种iframe youtube嵌入的滑块的页面。

当我点击滑块上的“下一步”按钮时,我试图让我的JS暂停视频。我想我已经根据api设置了所有内容..但是当你点击滑块按钮时它似乎没有暂停视频。

<script type="text/javascript">
// https://developers.google.com/youtube/iframe_api_reference

// global variable for the player
var player;

// this function gets called when API is ready to use

function onYouTubePlayerAPIReady() {
  // create the global player from the specific iframe (#video)
  player = new YT.Player('video', {
    events: {
      // call this function when player is ready to use
      'onReady': onPlayerReady
    }
  });
}

function onPlayerReady(event) {

  // bind events

  var pauseButtonRight = document.getElementByID("pause-right");
  pauseButtonRight.addEventListener("click", function() {
    player.pauseVideo();
  });
   var pauseButtonLeft = document.getElementByID("pause-left");
  pauseButtonLeft.addEventListener("click", function() {
    player.pauseVideo();
  });
}

// Inject YouTube API script
var tag = document.createElement('script');
tag.src = "//www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
</script>

我的iframe:

<iframe src="https://www.youtube.com/embed/6QB6jVjA2js?enablejsapi=1&html5=1&" frameborder="0" allowfullscreen="0"></iframe>

任何方向都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

一些事情:

  • 这是document.getElementById而不是document.getElementByID
  • 您已经设置了一个身份'video'的Youtube播放器,但您的iframe没有任何ID:

    <iframe id="video" src="https://www.youtube.com/embed/6QB6jVjA2js?enablejsapi=1&html5=1&" frameborder="0" allowfullscreen="0"></iframe>
    
  • 使用onYouTubeIframeAPIReady代替onYouTubePlayerAPIReady

你会有类似的东西:

var player;

function onYouTubeIframeAPIReady() {

  // create the global player from the specific iframe (#video)
  player = new YT.Player('video', {
    events: {
      // call this function when player is ready to use
      'onReady': onPlayerReady
    }
  });
}

function onPlayerReady(event) {
  var pauseButtonRight = document.getElementById("pause");
  pauseButtonRight.addEventListener("click", function() {
    player.pauseVideo();
  });
  var pauseButtonLeft = document.getElementById("play");
  pauseButtonLeft.addEventListener("click", function() {
    player.playVideo();
  });
}

// Inject YouTube API script
var tag = document.createElement('script');
tag.src = "//www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

with:

<iframe id="video" src="https://www.youtube.com/embed/6QB6jVjA2js?enablejsapi=1&html5=1&" frameborder="0" allowfullscreen="0"></iframe>
<input id="pause" type="submit" value="pause" />
<input id="play" type="submit" value="play" />

检查this fiddle

检查Youtube iframe API reference

相关问题