2013-10-16 71 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>