2017-10-18 173 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; 
    } 
}