我有下面的代码,当视频播放5秒钟时,它会打印到控制台。但是,如果用户暂停视频然后再次按下播放,则会将其打印到控制台。
当状态从未启动到播放5秒钟时,如何仅打印到控制台?
function onYouTubePlayerReady(playerId) {
ytplayer = document.getElementById("myytplayer");
ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
}
function onytplayerStateChange(newState) {
if (newState == 1) {
setTimeout(function(){
current = ytplayer.getCurrentTime();
console.log(current);
}, 5000);
}
}
答案 0 :(得分:0)
onStateChange
处理程序会因各种播放器状态更改而被触发,而不只是“播放”事件:https://developers.google.com/youtube/js_api_reference#onStateChange
你需要修改你的onytplayerStateChange()
函数来监听“暂停”/“缓冲”事件,并在触发这些事件时暂停你的倒计时,并且只有在下一个“播放”事件被触发时才重启它。 / p>