我需要检测视频何时结束,以便我可以关闭显示的视频并将用户带回主页。奇怪的是,我的播放器似乎只在视频开头正确发射事件,之后,它停止发射事件。
以下是本地行为与现场行为之间的比较:
在左侧,您可以看到我启动视频,然后暂停/播放几次。在右边,你可以看到我做同样的事情,但只有第一个事件被注册。
这是我的代码:
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: finalVideoId,
playerVars: {
showinfo: 0 ,
wmode: "opaque",
rel: 0,
},
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady(event) {
setPlayerSize();
}
function setPlayerSize() {
player.setSize($(document).width(), $(document).height() + 30)
}
function onPlayerStateChange(event) {
console.log(event);
if (event.data == 0) {
alert('stop');
mainMenuController.stopVideo();
}
if (event.data == YT.PlayerState.PAUSED) {
if ($(window).width() < 1023) {
mainMenuController.stopVideo();
}
}
}