2013-10-16 74 views
13

我正在使用youtube播放器api爲youtube視頻設置循環。Youtube播放器api與循環

問題是視頻沒有在循環下運行。

這裏是我的代碼

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', 

      playerVars: { 
      'controls': 0,   
      'showinfo': 0, 
      'rel': 0, 
      'loop': 1 

      }, 
      videoId: 'qzZuBWMnS08', 
      events: { 
      'onReady': onPlayerReady, 
      // 'onStateChange': onPlayerStateChange 
      } 
     }); 
     } 
function onPlayerReady(event) { 
     // event.target.setLoop(true); 
     event.target.playVideo(); 
     } 

循環:1似乎並沒有被working.Also有沒有辦法從視頻的頂部刪除共享和視頻節目。

在此先感謝。

回答

10

documentation所述,您需要將playlist參數設置爲視頻ID以使循環工作。

你會想要在showinfo參數隱藏標題等

+1

這種方法的問題是,它再次加載相同的視頻作爲一個新的視頻。 –

+0

錯過了這個。我現在無法檢查,但是這不會是一個非問題,因爲瀏覽器應該從先前的播放緩存/加載視頻? –

9

試試這個在您的onPlayerStateChange,在某種方式的Youtube希望你把在VideoID的一次。

onStateChange: function(e){ 
    var id = 'qzZuBWMnS08'; 

    if(e.data === YT.PlayerState.ENDED){ 
     player.loadVideoById(id); 
    } 
} 
33

如果視頻是不會改變,你可以做

onStateChange: 
    function(e){ 
     if (e.data === YT.PlayerState.ENDED) { 
      player.playVideo(); 
     } 
    } 

這將防止unnecisarily重裝視頻

+0

+1,因爲它會立即播放視頻,避免當使用[Google](https://developers.google.com/youtube/)建議的「&playlist = VIDEO_ID」時發生的黑屏快速閃爍player_parameters) – Filtermusic

9

這是我所使用的API的IFrame視頻循環。我注意到你必須包含「播放列表:VIDEO_ID」參數。它的工作原理。這是我的例子

<script> 
 
    // Load the IFrame Player API code asynchronously. 
 
    var tag = document.createElement('script'); 
 
    tag.src = "https://www.youtube.com/player_api"; 
 
    var firstScriptTag = document.getElementsByTagName('script')[0]; 
 
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
 

 
    // Replace the 'ytplayer' element with an <iframe> and 
 
    // YouTube player after the API code downloads. 
 
    var player; 
 

 
    function onYouTubePlayerAPIReady() { 
 
    player = new YT.Player('ytplayer', { 
 
     height: '390', 
 
     width: '640', 
 
     videoId: 'VIDEO_ID', 
 
     playerVars: { 
 
     playlist: 'VIDEO_ID', 
 
     loop: 1 
 
     } 
 
    }); 
 
    } 
 
</script>