我有以下代码,我希望能够在其中进行控制台。注销播放列表中的视频列表:
function onYouTubePlayerReady(playerId) {
ytplayer = document.getElementById("myytplayer");
ytplayer.cuePlaylist({
list:"PLf71xE2jRgTXB_LeUJkXxFwCc4r1z5if3"
});
console.log(ytplayer.getPlaylist());
}
但是getPlayList()方法只返回一个空数组。
当我从这个函数的外部调用getPlaylist()时,它会返回正确的数组。为什么这个方法在这里返回一个空数组?如何获取播放列表数组?
非常感谢。
我自己偶然发现了这个问题。这个问题似乎是播放器的一个怪癖,以及YouTube(谷歌)是如何定义"就绪"的
当播放器的"chrome"完成渲染(即绑定HTML文档)时,播放器的onReady函数似乎会启动。实际的播放器数据(视频或播放列表)是异步加载的,因此在之后的某个任意点都准备好了。
我做了一个简单的工作,看看玩家的状态变化事件
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());
}
}