【发布时间】:2014-09-07 07:45:51
【问题描述】:
所以我正在加载一个 youtube 播放列表:
event.target.loadPlaylist(videoIds);
我收到了这个错误:
奇怪的是播放列表加载正常大约一秒钟, 然后中断给我那个错误。
对不起,周围的代码:
window.tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
window.firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// 3. This function creates an <iframe> (and YouTube player)
// after the API code downloads.
// window.player;
window.onYouTubeIframeAPIReady = function() {
player = new YT.Player('player', {
height: '480',
width: '853',
playerVars: {
controls: 1,
modestbranding: 1,
playsinline: 1,
showinfo: 1,
iv_load_policy: 3,
rel: 0
},
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
window.onPlayerReady = function(event) {
//wierd 404 errors sometimes
event.target.loadPlaylist(videoIds, 0, 0, 'large');
event.target.playVideo();
}
window.onPlayerStateChange = function(event) {
console.log('the state changed: '+ event.data);
if (event.data === 1) {
console.log(event.target.getDuration());
globalYoutubePlayerCounter++;
console.log('youtube player count: ' +globalYoutubePlayerCounter);
}
if (globalYoutubePlayerCounter >= 6) {
/* load the next set of videos */
globalYoutubePlayerCounter = 0;
console.log('playlist ended');
if (that.finalTrackList.length > 0) {
that.getNextTenMusic(event.target);
}else{
// recall for general searches;
// that.getNextTenGeneral(event.target);
}
/* load the next set of videos */
}
}
即使出现错误,所有视频列表的格式也正确。 Console.log 证实了这一点。
【问题讨论】:
-
如果没有看到它周围的代码就很难判断...
event.target真的引用了播放器吗?videoIds是一个格式良好的数组吗?通过使用 console.log 显示它们来检查。 -
即使出现错误,所有视频列表的格式也正确。 Console.log 证实了这一点。 Event.target 是全局的,并在控制台中正确记录。
-
它对我有用...JS Fiddle。我会看看你的代码。
-
它在 80% 的时间里都有效,这让我很困惑
-
如果我这样做,您的代码对我有用:尝试在
// 3. This function...之前删除代码,并实际将 标签放在 after 您的代码,就像这样<script src="https://www.youtube.com/iframe_api"></script>。如果它适合你,我会解释。
标签: javascript youtube youtube-api google-api youtube-iframe-api