2017-10-18 167 views
0

我的視頻不加載下面的代碼。Javascripting一個Youtube視頻後播放

它似乎應該是非常直接的,但我不能讓它加載任何東西。我已經試過:

  • 改變視頻
  • 改變事件的訂單
  • 在HTML

將顯式高度到div ......這就是所有我可以拿出。

任何人都可以看到發生了什麼問題嗎?

謝謝。

<html> 
    <head>Video title 
     <script src=//"www.youtube.com/iframe_api"></script> 
     <script>  
      var videoIDs = [ 
       'OdT9z-JjtJk', 
       'NlXTv5Ondgs' 
      ]; 

      var player, currentVideoId = 0; 

      function onYouTubeIframeAPIReady() { 
       player = new YT.Player('player', { 
        height: '350', 
        width: '425', 
        events: { 
         'onReady': onPlayerReady, 
         'onStateChange': onPlayerStateChange 
        } 
       }); 
      } 

      function onPlayerReady(event) { 
       event.target.loadVideoById(videoIDs[currentVideoId]); 
      } 

      function onPlayerStateChange(event) { 
       if (event.data == YT.PlayerState.ENDED) { 
        currentVideoId++; 
        if (currentVideoId < videoIDs.length) { 
         player.loadVideoById(videoIDs[currentVideoId]); 
        } 
       } 
      } 
     </script> 
    </head> 
    <body> 
     <div id="player"></div> 
    </body> 
</html> 

回答

0

使用這個劇本,我改變simething: -

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, currentVideoId = 0; 

function onYouTubeIframeAPIReady() { 
    player = new YT.Player('player', { 
     height: '350', 
     width: '650', 
     videoId: 'M7lc1UVf-VE', 
     events: { 
      'onReady': onPlayerReady, 
      'onStateChange': onPlayerStateChange 
     } 
    }); 
} 

function onPlayerReady(event) { 
    event.target.playVideo(); 
} 
var done = false; 

function onPlayerStateChange(event) { 
    if (event.data == YT.PlayerState.PLAYING && !done) { 
     currentVideoId++; 
     if (currentVideoId < videoIDs.length) { 
      player.loadVideoById(videoIDs[currentVideoId]); 
     } 
     setTimeout(stopVideo, 6000); 
     done = true; 
    } 
}