我正在使用YT.player在网站上显示直播活动:http://www.solarimpulse.com/rtw
由于youtube更改了直播活动的显示,因此YT.player的倒计时不再是动态的。我需要重新加载页面以查看倒计时。更糟糕的是,当我开始播放现场活动时没有任何附加内容,我需要重新加载页面才能看到视频。
去年倒计时和玩家工作正常,从那时起我没有改变代码:
var player = {
playVideo: function (container, videoId) {
if (typeof(YT) == 'undefined' || typeof(YT.Player) == 'undefined') {
window.onYouTubePlayerAPIReady = function () {
player.loadPlayer(container, videoId);
};
$.getScript('//www.youtube.com/player_api');
} else {
player.loadPlayer(container, videoId);
}
},
loadPlayer: function (container, videoId) {
youtubePlayerSatcom = new YT.Player(container, {
playerVars: {
controls: 1,
rel: 0,
autoplay: 1,
playsinline: 1,
modestbranding: 1, // disable watch on youtube
fs: 1, // fullscreen
cc_load_policy: 0,
iv_load_policy: 3, // annotations
showinfo: 0 // don't show loading
},
height: '100%',
width: '100%',
videoId: videoId,
events: {
'onStateChange': function (event) {
if (event.data === 0) {
youtubePlayerSatcom.loadVideoById(videoId, 0);
}
}
}
});
}
};
player.playVideo('satcom-player', videoId);
我该如何解决?
感谢您的帮助。
答案 0 :(得分:0)
我做了一个小修补程序,重新加载视频,如果还没有开始。它不是很干净,因为玩家变黑并再次加载但是它有效。倒计时会变得像这样动态。
$.doTimeout('youtube_notplaying', 20*1000, function () {
if (typeof youtubePlayerSatcom != 'undefined') {
if (youtubePlayerSatcom.getPlayerState() == -1) {
if (debug_interface) console.log('load '+videoId);
youtubePlayerSatcom.loadVideoById(videoId);
} else if (youtubePlayerSatcom.getPlayerState() != -1) {
return false; // stop timeout
}
}
return true; // repeat
}, true);