为youtube预先滚动

时间:2012-10-08 14:04:00

标签: youtube youtube-api youtube-javascript-api

我想在同一个播放器中播放两个不同的YouTube视频,第一个视频在第二个播放前播放(作为前贴片广告)。自定义播放列表排序仅包含两个视频。

我真正需要的是当播放器处于空闲状态时,它必须显示主视频(第二个)的图像,而不是前贴片。

所以,我认为我必须使用youtube api加载主视频,然后停止它,然后加载前贴片,然后播放前贴片播放主视频然后停止。

我尝试复制/粘贴相同的代码来实现这些任务,但我陷入其中。有人可以给我一个有效的例子吗?或者,至少一些建议?非常感谢。

1 个答案:

答案 0 :(得分:1)

这有点粗糙,但是通过听取状态变化事件来完成你的任务;通过在预卷接近完成时基于提示主视频集成一些智能先行监控,您可以使其响应更快。但无论如何,这至少应该让你开始:

    <div id="player"></div>
      <script>
      var seenPreroll=false;
      var preroll='rl1qKqlYy8M';
      var mainfeature='u1zgFlCw8Aw';
      var playingId='';
      var tag = document.createElement('script');
      tag.src = "//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', {
          height: '390',
          width: '640',
          videoId: mainfeature,
          events: {
            'onStateChange': function(event) {
                        if (event.data==1&&seenPreroll==false) {
                                player.pauseVideo();
                                player.loadVideoById(preroll);
                                playingId=preroll;
                                seenPreroll=true;
                                player.playVideo();
                        }
                        else if (event.data==0&&playingId==preroll) {
                                player.loadVideoById(mainfeature);
                                playingId=mainfeature;
                                player.playVideo();
                        }
                }
          }
        });

}
</script>