好的......已经工作了几个月而且还没有工作结果......所以,现在请求帮助!我有一个YouTube播放列表,ID:PLl_KM23gznEAZW-INW8ty4QNaHH8JCnNW。此播放列表上有近1500个视频。我需要一个能够调用列表的代码,并从列表中播放随机视频。我需要它以随机顺序播放所有1500个视频而不重复任何视频。然后在播放列表完成后,它需要重新开始,继续以完全不同的随机顺序播放视频。
我已经尝试了几个代码片段,似乎无法将所有内容整合在一起。我要么重复播放,要么我只得到一个不播放任何内容的列表,或者它将随机选择第一个视频,然后可能是第二个视频,但它将从第一个或第二个开始按顺序播放视频。当前运行的youtube播放器只会调用200首歌曲列表中的视频。 IE:如果付款人按顺序开始,只会播放1到200,然后停止。或者,我可以将其设置为从播放列表中的任何歌曲开始,例如,#999,它将转到该视频,但仅播放从999到1198的视频。
我必须随机选择这首歌并将其放入我的代码中以使其完成。
我需要它以随机播放模式启动,从1500个视频列表中选择任何一首歌,然后继续随机选择并播放列表中的任何其他视频,除了那些已播放的视频,直到它播放了所有视频,然后循环播放列表并继续播放播放列表中的随机视频,不包括其播放的顺序。我要避免的主要事情是......必须手动创建列表数组。我需要能够调用播放列表的网址,并通过编号,视频ID,歌曲名称等检索视频列表。使用最简单,最干净的代码。
PS:有了评论对我的学习过程非常有帮助。
请不要担心任何事情,我是51岁,残疾人,并试图在2003年获得学位后自己提醒我自己编码语法,从那时起就不再使用它了!我正在为自己创建一个项目,或多或少地试图使自己能够自己阅读,修复和创建编码。不过这部分让我完全难过!
我希望这对某人有意义,我只是在试图提问时感到困惑!!!
尝试了这个,什么都没有......只是一个空白页......
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
function onYouTubeIframeAPIReady() {
var player = new YT.Player("player", {
height: '390',
width: '640',
events: {
'onReady': function (event) {
event.target.cuePlaylist({list: "PLl_KM23gznEAZW-INW8ty4QNaHH8JCnNW"});
event.target.playVideo();
setTimeout(function() {
event.target.setShuffle({'shufflePlaylist' : true});
}, 1000);
}
}
});
}
这个将加载播放器,但不会随机播放或播放。从第一个视频开始,然后按顺序继续......
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;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
events: {
'onReady': onPlayerReady
},
playerVars: {
listType:'playlist',
list: 'PLl_KM23gznEAZW-INW8ty4QNaHH8JCnNW'
}
});
}
function onPlayerReady(event) {
num = _.random(0, 1500);
setTimeout(() => {
player.playVideoAt(num);
}, 1000);
}
这个将从一个随机视频开始,但然后从那里继续......
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
function onYouTubeIframeAPIReady() {
var numPl = Math.floor((Math.random() * 1500) + 1);
var player = new YT.Player("player", {
height: '390',
width: '640',
playerVars: {
listType:'playlist',
list:'PLl_KM23gznEAZW-INW8ty4QNaHH8JCnNW',
index: numPl,
autoplay: 1,
},
events: {
'onReady': function (event) {
event.target.cuePlaylist({list: "PLl_KM23gznEAZW-INW8ty4QNaHH8JCnNW"});
event.target.playVideo();
setTimeout(function() {
event.target.setShuffle({'shufflePlaylist' : true});
}, 1000);
}
}
});
}
function onPlayerReady(event) {
event.target.mute();
setTimeout( function() {
event.target.setShuffle(true);
event.target.setLoop(true);
}, 2000);
}
function getRandomId() {
var random_id = 0
while(played_idx.indexOf(random_id) != -1) {
random_id = Math.floor(Math.random * playlist.length)
}
return random_id
}
我很确定还有更多,但目前无法找到它们。