2013-04-07 39 views
4

我一直在試圖建立自己的YouTube API來打亂我的播放列表,但是順序是一樣的所有的時間...YouTube API播放列表shuffle無法正常工作?

這裏就是我從 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

的洗牌在這裏工作後ü加載播放列表,並點擊一個按鈕。

回答

2

這是一個已知的bug有待固定 - 看到這個post

一個解決不過是一個隨機數傳遞給playVideoAt,如下:

var getRandom = function(min, max) { 
    return Math.random() * (max - min) + min; 
}; 

var playRandomTrack = function() { 
    num = getRandom(0, 99); 
    player.playVideoAt(num); 
}; 
1

我找到了解決辦法。你必須加載player.setShuffle(true)僅僅是第一視頻開始播放後:

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

演示我online music tv website

0

或多或少相同的溶液,作爲伊萬的。適合我!

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

如果你直接啓動它,它肯定不會工作(我注意到,對我的沮喪)。

相關問題