2013-10-16 1 views
13

Ich habe Probleme mit der Einrichtung der Schleife für Youtube-Videos mit Youtube Player API.Youtube Player Api mit Schleife

Das Problem ist, dass das Video nicht unter einer Schleife läuft.

Hier ist mein Code

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

Die Schleife: 1 scheint nicht zu sein working.Also gibt es eine Möglichkeit, den Anteil und Videotitel von der Spitze des Videos zu entfernen.

Vielen Dank im Voraus.

Antwort

10

Wie in documentation angegeben, müssen Sie den Parameter playlist auf die Video-ID setzen, damit die Schleife funktioniert.

Sie werden fehlen die showinfo Parameter den Titel usw.

+1

Das Problem dieser Methode ist, dass es das gleiche Video wieder als neues Video lädt. –

+0

Dies wurde verpasst. Ich kann das jetzt nicht überprüfen, aber wäre das kein Problem, da der Browser das Video von der vorherigen Wiedergabe im Cache speichern sollte? –

9

Versuchen Sie dies in Ihrem onPlayerStateChange, in irgendeiner Art und Weise Youtube will, dass Sie sich zu verstecken wieder in den videoID setzen.

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

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

Wenn das Video nicht ändert, können Sie einfach tun

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

Dadurch wird verhindert, unnecisarily das Video Nachladen

+0

+1 für den oben genannten Ansatz, weil das Video sofort abgespielt wird und der schnelle Blitz des schwarzen Bildschirms vermieden wird, wenn die von [Google] vorgeschlagene "& playlist = VIDEO_ID" verwendet wird (https://developers.google.com/youtube/ player_parameters) – Filtermusic

9

Dies ist, was ich für die API IFrame Video-Loop verwendet haben. Ich habe festgestellt, dass Sie den Parameter "Playlist: VIDEO_ID" angeben müssen. und es funktioniert. Das ist mein Beispiel

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