我们有很多客户都有YouTube视频广告。这些目前在YouTube播放列表中,但是通过嵌入播放列表,相同的视频始终首先显示在网站上,因此我们希望随机确定哪个视频在播放列表的页面加载中显示。我有一个代码片段,它将从输入视频网址加载随机视频,但是当视频完成时,它不会移动到列表中的下一个视频。任何人都可以建议我如何完成我想做的事情?我的代码如下。
rep_pints['long'].astype(float)
提前谢谢你。 娜
答案 0 :(得分:2)
功能loadVideoById
可以在对象语法中获得单个ID 或单个视频。 无法接收视频或播放列表。
这是我的实施 http://jsfiddle.net/thatkookooguy/e11oy0eu/2247/ (代码也嵌入到最后)
请注意,由于youtube API存在错误,因此使用了setTimeout
。如果您立即设置setShuffle
或playVideoAt
,则不会发生任何事情(或播放列表重置并从头开始)。
您可以在播放器的播放选项中添加您想要更改的任何内容(随机播放,循环播放)。如果它不起作用,请尝试将这些参数添加到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>