从列表/播放列表中播放随机YouTube视频并循环播放

时间:2018-04-05 09:08:03

标签: javascript youtube-api

我们有很多客户都有YouTube视频广告。这些目前在YouTube播放列表中,但是通过嵌入播放列表,相同的视频始终首先显示在网站上,因此我们希望随机确定哪个视频在播放列表的页面加载中显示。我有一个代码片段,它将从输入视频网址加载随机视频,但是当视频完成时,它不会移动到列表中的下一个视频。任何人都可以建议我如何完成我想做的事情?我的代码如下。

rep_pints['long'].astype(float) 

提前谢谢你。 娜

1 个答案:

答案 0 :(得分:2)

功能loadVideoById可以在对象语法中获得单个ID 单个视频。 无法接收视频或播放列表

这是我的实施 http://jsfiddle.net/thatkookooguy/e11oy0eu/2247/ (代码也嵌入到最后)

请注意,由于youtube API存在错误,因此使用了setTimeout。如果您立即设置setShuffleplayVideoAt,则不会发生任何事情(或播放列表重置并从头开始)。

您可以在播放器的播放选项中添加您想要更改的任何内容(随机播放,循环播放)。如果它不起作用,请尝试将这些参数添加到setTimeout

参考:youtube API - setShuffle don't work

// 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);

var player;

// load the playlist
function onYouTubeIframeAPIReady() {
  player = new YT.Player('player', {
    height: '390',
    width: '640',
    events: {
      'onReady': onPlayerReady
    },
    playerVars: {
      listType: 'playlist',
      list: 'PLOy0j9AvlVZPto6IkjKfpu0Scx--7PGTC'
    }
  });
}

// when the video player is ready, generate a random number, and play from that
function onPlayerReady(event) {
  // create a random number between 0 and 149
  num = Math.floor(Math.random() * 150);

  // the timeout is set because of a bug with the youtube API. if you do any of this line without it, it won't affect anything
  // see: https://stackoverflow.com/questions/12916017/youtube-api-setshuffle-dont-work
  setTimeout(() => {
    player.playVideoAt(num);
  }, 1000);
}
<div id="player"></div>