【问题标题】:About Use YouTube Player API loadPlaylist关于使用 YouTube Player API loadPlaylist
【发布时间】:2013-08-18 11:26:20
【问题描述】:

如何使用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>

我想实现这个例子的效果: http://www.youtube.com/watch?v=0DdCoNbbRvQ&list=RD02_VTY8ftr1vY

非常感谢。

【问题讨论】:

  • “它不起作用”是什么意思?你能把它和你的 HTML 一起放在一个 jsfiddle 中吗? jsfiddle.net
  • 我已经编辑了那个代码。

标签: javascript css youtube youtube-api


【解决方案1】:

index:parseInt(0) - 此参数不是必需的: 默认情况下,列表中的索引为 0

【讨论】:

    【解决方案2】:

    实际上我昨天遇到了这个问题。首先,在您的onPlayerReady 函数中,您需要调用loadPlaylist,因为这会提示播放列表并开始播放。

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

    我使用了您的代码并将 onPlayerReady 更改为使用带有参数语法的 loadPlaylist 函数,现在它可以工作了。在此处查看 jsfiddle:http://jsfiddle.net/rustybailey/9kFyx/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-10
      • 2013-01-03
      • 1970-01-01
      • 1970-01-01
      • 2015-12-31
      • 2014-02-02
      • 1970-01-01
      相关资源
      最近更新 更多