Youtube Javascript API:启动参数不能重放

时间:2016-07-28 02:28:47

标签: iframe youtube embed replay

我正在使用Youtube Javascript API(iframe版本),我正在使用startend参数才能播放视频的一部分。虽然一切正常,但一旦达到end,玩家就会停止(正常行为)。但是,再次点击播放时,播放器似乎没有考虑start选项。它始终从视频开头重新开始播放。但它始终以定义的end值结束。

<iframe frameborder="0" src="https://www.youtube.com/embed/5lGoQhFb4NM?autoplay=1&autohide=1&modestbranding=1&showinfo=0&controls=0&vq=hd720&rel=0&start=60&end=100" style="width: 100%; height: 400px;"></iframe>

你们有没有想过为什么会这样?

2 个答案:

答案 0 :(得分:0)

以下是我能够在原始start时间重播重播按钮,以及阻止用户滚动到playerVars的开始/结束范围之外:

function onPlayerStateChange(event) {

  var isClip = playerOptions.playerVars.start && playerOptions.playerVars.end;
  var start = isClip ? playerOptions.playerVars.start : null;
  var end = isClip ? playerOptions.playerVars.end : null;

  if (event.data == YT.PlayerState.PLAYING) {
    if (isClip) {
      var currentTime = event.target.getCurrentTime();
      if (currentTime < start || currentTime > end) {
        event.target.seekTo(playerOptions.playerVars.start);
      }
    }

  }

}

答案 1 :(得分:0)

我尝试了上述解决方案,但没有成功(错误控制台:“未定义playerOptions”)

但是这个话题YouTube API - Loop video between set start and end times非常重要,我已经能够成功获取重播的开始/结束参数:

 <script>
// 5. The API calls this function when the player's state changes.
  var done = false;
  function onPlayerStateChange(event) {
   
    if (event.data == YT.PlayerState.ENDED) {
        var playButton = document.getElementById("play");
        playButton.addEventListener("click", function() {
            player.loadVideoById({
                  videoId: videoId,
                  startSeconds: startSeconds,
                  endSeconds: endSeconds
            });
        });
        document.getElementById("play").style.cssText = "visibility:visible";
    }  
  }
 </script>

说明:以我为例,我使用的是id =“ play”按钮开始播放视频。视频结束时,将#play按钮设置为visible:visible,而click事件使用player.loadVideoById对应参数。 如果您不使用click事件,视频将自动循环播放所需的开始/结束值。

来自Youtube API参考= https://developers.google.com/youtube/iframe_api_reference?hl=fr#Getting_Started