Jquery 播放并搜索YouTube iframe API

Jquery 播放并搜索YouTube iframe API,jquery,jquery-events,youtube-iframe-api,Jquery,Jquery Events,Youtube Iframe Api,我正在测试YouTube iframe API,以跟踪YouTube嵌入式视频上的分析事件。 特别是,我试图在视频播放时获取seek事件 这是控制触发的代码部分: /* currentTime Conversion */ time = Math.round(player.getCurrentTime()); let minutes = Math.floor(time / 60); let seconds = time - minutes * 60; seconds =

我正在测试YouTube iframe API,以跟踪YouTube嵌入式视频上的分析事件。 特别是,我试图在视频播放时获取seek事件

这是控制触发的代码部分:

/* currentTime Conversion */
 time = Math.round(player.getCurrentTime());
    let minutes = Math.floor(time / 60);
    let seconds = time - minutes * 60;
    seconds = seconds < 10 ? '0' + seconds : seconds;
    minutes = minutes < 10 ? '0' + minutes : minutes;
    this.time = minutes + ':' + seconds;

// VIDEO IS PLAYING
    } else if (playerStatus == 1) {
    // Check for Seek Action
    var lastTime = -1;
    var interval = 1000;


 var checkPlayerTime = function () {
        if (lastTime != -1) {
            if(player.getPlayerState() == YT.PlayerState.PLAYING ) {
        
            //expecting 1 second interval , with 500 ms margin
            if (Math.abs(player.getCurrentTime() - lastTime - 1 ) > 0.5) {
                 //Percentage calc
                 var percentage = player.getCurrentTime()/player.getDuration()*100; 
                 roundedPercentage = Math.round(percentage); 
                 var seek = 'SEEK - ' + roundedPercentage + '% (' + time + ')';
                 console.log(seek); 
                 trackEvent('video_time_percentage' ,  seek , videoInfo['video title'] + '_' + videoInfo['video id']); 
            }
        }
    }
    lastTime = player.getCurrentTime();
    setTimeout(checkPlayerTime, interval); // repeat function call in 1 second
}
    setTimeout(checkPlayerTime, interval); // initial call delayed 
    var play = 'PLAY - ' + roundedPercentage + '% (' + time + ')';
    console.log(play);
    trackEvent('video_time_percentage' ,  play , videoInfo['video title'] + '_' + videoInfo['video id']); 
    
}
/*当前时间转换*/
time=Math.round(player.getCurrentTime());
分钟=数学楼层(时间/60);
设秒=时间-分钟*60;
秒=秒<10?'0'+秒:秒;
分钟=分钟<100'+分钟:分钟;
this.time=分钟+':'+秒;
//正在播放视频
}else if(playerStatus==1){
//检查以寻求行动
var lastTime=-1;
var区间=1000;
var checkPlayerTime=函数(){
如果(上次!=-1){
if(player.getPlayerState()==YT.PlayerState.PLAYING){
//预期间隔1秒,有500毫秒的余量
if(Math.abs(player.getCurrentTime()-lastTime-1)>0.5){
//百分比计算
var percentage=player.getCurrentTime()/player.getDuration()*100;
roundedPercentage=数学四舍五入(百分比);
var seek='seek-'+roundedPercentage+'%('+time+');
控制台日志(seek);
trackEvent('video_time_percentage',seek,videoInfo['video title']+''.'+'videoInfo['video id']);
}
}
}
lastTime=player.getCurrentTime();
setTimeout(checkPlayerTime,interval);//在1秒内重复函数调用
}
setTimeout(checkPlayerTime,interval);//初始调用延迟
变量play='play-'+roundedPercentage+'%('+time+');
控制台。日志(播放);
trackEvent('video_time_percentage',play,videoInfo['video title']+''.'+'videoInfo['video id']);
}
问题是
console.log(seek)
(和数据跟踪事件)对于任何seek操作都会重复多次(请参见附加屏幕),在分析面板中返回错误的数据

我做错了什么,如何解决