【问题标题】:YouTube API playlist shuffle not working?YouTube API 播放列表随机播放不起作用?
【发布时间】:2013-04-07 19:45:45
【问题描述】:

我一直在尝试设置我的 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 设置为“true”,我尝试过 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

加载播放列表并单击按钮后,随机播放将在此处工作。

【问题讨论】:

    标签: javascript youtube-api


    【解决方案1】:

    这是一个尚未修复的已知错误 - 请参阅post

    然而,一种解决方法是将一个随机数传递给playVideoAt,如下所示:

    var getRandom = function(min, max) {
      return Math.random() * (max - min) + min;
    };
    
    var playRandomTrack = function() {
      num = getRandom(0, 99);
      player.playVideoAt(num);  
    };
    

    【讨论】:

      【解决方案2】:

      我找到了解决方案。您必须在第一个视频开始后加载player.setShuffle(true)

       function onPlayerReady(event) {
          event.target.playVideo();
          setTimeout(setShuffleFunction, 1000);           
        }
        function setShuffleFunction(){
          player.setShuffle(true);
        }
      

      在我的online music tv website上演示

      【讨论】:

        【解决方案3】:

        与 Ivan 的解决方案大致相同。为我工作!

        function onPlayerReady(event) {
            event.target.mute();
            setTimeout( function() { 
                event.target.setShuffle(true); 
                event.target.setLoop(true);
            }, 2000);
        }
        

        如果你直接启动它,它肯定不会工作(我注意到了,我很沮丧)。

        【讨论】:

          【解决方案4】:

          尝试以下方法:

          function onPlayerStateChange(event) {
              if(event.data === 0) {
                  player.setShuffle(true);
                  player.playVideo();
              }
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-05-14
            • 1970-01-01
            • 1970-01-01
            • 2023-01-23
            • 2012-03-11
            • 1970-01-01
            • 1970-01-01
            • 2015-01-22
            相关资源
            最近更新 更多