我一直在尝试设置我的youtube api以随机播放我的播放列表,但订单始终是相同的......
以下是我从中获取代码的链接 https://developers.google.com/youtube/iframe_api_reference#setShuffle
我称呼它是对的吗?
这是我的代码
<div id="player"></div>
<script>
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
}
});
}
function onPlayerReady(event) {
player.loadPlaylist({'listType': 'playlist', 'list': 'PLF776D41D8211F340','index': '0','startSeconds': '0','suggestedQuality': 'hd720'});
player.setShuffle({'shufflePlaylist' : 1});
}
</script>
我已经尝试将shufflePlaylist设置为&#39; true&#39;,我已经尝试了cueplaylist而不是loadplaylist,我甚至尝试将shufflePlaylist放入加载播放列表......没有任何东西被洗牌。
我已经调查了这个,我发现这是API的一个问题,但那是2年前,有没有解决这个问题的方法?
以下是我尝试过但没有工作
player.setShuffle(1);
player.setShuffle('1');
player.setShuffle(true);
player.setShuffle('true');
player.setShuffle({'shufflePlaylist' : true});
player.setShuffle({'shufflePlaylist' : 1});
player.setShuffle({'shufflePlaylist' : 'true'});
player.setShuffle({'shufflePlaylist' : '1'});
我也尝试过这里的复制和示例.... https://developers.google.com/youtube/youtube_player_demo
在您加载播放列表并单击按钮后,Shuffle将在此处运行。
答案 0 :(得分:2)
这是一个尚未修复的已知错误 - 请参阅此post
然而,解决方法是将随机数传递给playVideoAt
,如下所示:
var getRandom = function(min, max) {
return Math.random() * (max - min) + min;
};
var playRandomTrack = function() {
num = getRandom(0, 99);
player.playVideoAt(num);
};
答案 1 :(得分:1)
我找到了解决方案。您必须在第一个视频开始后加载player.setShuffle(true)
:
function onPlayerReady(event) {
event.target.playVideo();
setTimeout(setShuffleFunction, 1000);
}
function setShuffleFunction(){
player.setShuffle(true);
}
上的演示
答案 2 :(得分:0)
或多或少与伊万相同的解决方案。适合我!
function onPlayerReady(event) {
event.target.mute();
setTimeout( function() {
event.target.setShuffle(true);
event.target.setLoop(true);
}, 2000);
}
如果你直接启动它,它绝对不会起作用(我注意到,令我沮丧)。
答案 3 :(得分:0)
尝试以下操作:
function onPlayerStateChange(event) {
if(event.data === 0) {
player.setShuffle(true);
player.playVideo();
}
}