关于使用YouTube Player API loadPlaylist

use*_*100 3 javascript css youtube youtube-api

如何使用该loadPlaylist选项以便自动播放下一个视频?我的代码是这样的,但它不起作用,无法播放视频:

<div id="player"></div>
<script>
  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',
      loadPlaylist:{
        listType:'playlist',
        list:['4Ivdp8kj_0U','4MJRS-cLozU'],
        index:parseInt(0),
        suggestedQuality:'small'
      },
      events: {
        'onReady': onPlayerReady,
        'onStateChange': onPlayerStateChange
      }
    });
  }
  function onPlayerReady(event) {
    event.target.playVideo();
  }
  var done = false;
  function onPlayerStateChange(event) {
    if (event.data == YT.PlayerState.PLAYING && !done) {
     // setTimeout(stopVideo, 60000);
      done = true;
    }
  }
  function stopVideo() {
    player.stopVideo();
  }
</script>
Run Code Online (Sandbox Code Playgroud)

我希望实现此示例的效果:http: //www.youtube.com/watch?v = 0DdCoNbbRvQ&list = RD02_VTY8ftr1vY

非常感谢.

小智 5

我昨天遇到了这个问题.首先,在你的onPlayerReady函数中,你需要进行调用,loadPlaylist因为这会定位播放列表并开始播放.

但是,我遇到的问题是在调用由视频ID数组组成的播放列表时使用对象语法,我会收到错误.经过一些谷歌搜索,我发现这个Stack Overflow问题建议使用参数语法,这似乎解决了它.请点击此处查看差异:https://developers.google.com/youtube/js_api_reference#Playlist_Queueing_Functions

我拿了你的代码并改变了onPlayerReady使用loadPlaylist带有参数语法的函数,它现在可以工作了.请参阅jsfiddle:http://jsfiddle.net/rustybailey/9kFyx/