0

我有以下代码,当视频播放 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);

    }
}
4

1 回答 1

0

onStateChange处理程序会因各种播放器状态更改而被触发,而不仅仅是“播放”事件:https ://developers.google.com/youtube/js_api_reference#onStateChange

您需要修改您的onytplayerStateChange()函数以侦听“暂停”/“缓冲”事件并在触发这些事件时暂停倒计时,并且仅在触发下一个“播放”事件时重新启动它。

于 2012-12-28T16:29:23.460 回答