getPlayList()中的YouTube API返回空数组(getPlayList() in Y

2019-10-18 09:01发布

我有下面的代码,在那里我希望能够CONSOLE.LOG出的播放列表中的视频列表:

function onYouTubePlayerReady(playerId) {
        ytplayer = document.getElementById("myytplayer");

        ytplayer.cuePlaylist({
            list:"PLf71xE2jRgTXB_LeUJkXxFwCc4r1z5if3"
        });
        console.log(ytplayer.getPlaylist());
}

但getPlayList()方法只返回一个空数组。

当从这个函数外玩耍如果我叫getPlaylist()它返回正确的阵列。 为什么这个方法在这里返回一个空数组? 我怎样才能播放列表阵列?

非常感谢。

Answer 1:

只是碰到这种问题绊倒自己。 这个问题似乎是与播放机的怪癖和YouTube(谷歌)是如何定义的“准备好了”

看来,当“铬”为玩家呈现完毕玩家火灾onReady功能(即它绑在HTML文档)。 实际的玩家数据(视频或播放列表)异步加载,所以准备在之后的某个任意点。

我把一个简单的变通到位,着眼于玩家的状态更改事件

var firstLoad = true;
function onPlayerStateChange(e) {
  if (firstLoad && e.data == YT.PlayerState.CUED) {
      //First Cued event - playlist is now available
      firstLoad = false
      myPlaylistFunction(player.getPlaylist());
  }
}


文章来源: getPlayList() in YouTube API returning empty array
标签: youtube-api