我为要嵌入的某些youtube视频创建了一个章节选择器。此方法曾经有效,但最近已停止。我不知道发生了什么事。

我使用的是他们推荐的格式,但是使用loadVideoById来显示每一章

<div class="wrapper">

<div id="player"></div>

<script type="text/javascript">
  var tag = document.createElement('script');

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

  var player;
  function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
      width: '625',
      videoId: 'FE5jN0rqMtM',
      events: {
        'onStateChange': onPlayerStateChange
      },
      playerVars:{
        rel: 0,
        wmode: "opaque"
      }
    });
  }

  function onPlayerStateChange(evt) {
    if (evt.data == 0) {
          $('#video_popup').removeClass('hide_pop');
          $('#video_popup').addClass('display_pop');
    }
    else if (evt.data == -1) {
          $('#video_popup').removeClass('display_pop');
          $('#video_popup').addClass('hide_pop');
    }
    else {
          $('#video_popup').removeClass('display_pop');
          $('#video_popup').addClass('hide_pop');
    }
  }

  function chapter1() {
       player.loadVideoById({'videoId': 'FE5jN0rqMtM', 'startSeconds': 0});
  }

  function chapter2() {
       player.loadVideoById({'videoId': 'FE5jN0rqMtM', 'startSeconds': 63});
  }

  function chapter3() {
      player.loadVideoById({'videoId': 'FE5jN0rqMtM', 'startSeconds': 135});
  }

</script>

<div id="video_popup" class="hide_pop">
    <div class="video_layover">
        <div class="promo">Thank you for watching!<br /><br /></div>
        <div class="link"><a href="javascript: chapter1();">Replay Video</a></div>
    </div>
</div>


    <div style="margin: 0 auto 20px auto; width:625px; height:98px; text-align:center;">
    <ul class="player">

            <a href="javascript: chapter1();"><li>Chapter 1</li></a>


            <a href="javascript: chapter2();"><li>Chapter 2</li></a>


            <a href="javascript: chapter3();"><li>Chapter 3</li></a>

    </ul>
    </div>

最佳答案

我猜这是一个错误,尽管我找不到它的记录。如果需要,可以report the bug

无论如何,我认为cueVideoById是在所有浏览器中都适用的更好的方法:
示例:JS Bin

function chapter2() {
  player.cueVideoById('FE5jN0rqMtM', 63); // BETTER WAY
  player.playVideo();
}

关于iframe - YouTube API loadVideoById startSeconds无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18239518/

10-11 15:08