Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript YouTube API播放列表无序播放不起作用?_Javascript_Youtube Api - Fatal编程技术网

Javascript 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

我一直在尝试设置我的youtube api来洗牌我的播放列表,但顺序一直是一样的

这是我获取代码的链接

我说得对吗

下面是我的代码

<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();
    }
}