Javascript YouTube API播放列表无序播放不起作用?
我一直在尝试设置我的youtube api来洗牌我的播放列表,但顺序一直是一样的 这是我获取代码的链接 我说得对吗 下面是我的代码Javascript YouTube API播放列表无序播放不起作用?,javascript,youtube-api,Javascript,Youtube Api,我一直在尝试设置我的youtube api来洗牌我的播放列表,但顺序一直是一样的 这是我获取代码的链接 我说得对吗 下面是我的代码 <div id="player"></div> <script> var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; var firstScriptTag = document.g
<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>
我也试着从这里复制和举例
加载播放列表并单击按钮后,洗牌在此工作。这是一个尚未修复的已知错误-请参见此 不过,解决方法是将一个随机数传递给
playVideoAt
,如下所示:
var getRandom = function(min, max) {
return Math.random() * (max - min) + min;
};
var playRandomTrack = function() {
num = getRandom(0, 99);
player.playVideoAt(num);
};
我找到了解决办法。您必须在第一个视频开始后加载
播放器。setShuffle(true)
:
function onPlayerReady(event) {
event.target.playVideo();
setTimeout(setShuffleFunction, 1000);
}
function setShuffleFunction(){
player.setShuffle(true);
}
我的上的演示或多或少与Ivan的解决方案相同。为我工作
function onPlayerReady(event) {
event.target.mute();
setTimeout( function() {
event.target.setShuffle(true);
event.target.setLoop(true);
}, 2000);
}
如果您直接启动它,它肯定不会工作(我已经注意到,这让我很沮丧)。尝试以下方法:
function onPlayerStateChange(event) {
if(event.data === 0) {
player.setShuffle(true);
player.playVideo();
}
}
function onPlayerStateChange(event) {
if(event.data === 0) {
player.setShuffle(true);
player.playVideo();
}
}