Javascript:通过暂停Youtube视频暂停设置超时

Javascript:通过暂停Youtube视频暂停设置超时,javascript,timer,youtube,resume,pause,Javascript,Timer,Youtube,Resume,Pause,我的页面上有一个计时器,它在youtube视频开始后倒数10秒。计时器完成后,将启用一个。如果用户在这10秒内暂停/恢复视频,我还想暂停并恢复计时器 我的代码如下所示: var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('sc

我的页面上有一个计时器,它在youtube视频开始后倒数10秒。计时器完成后,将启用一个。如果用户在这10秒内暂停/恢复视频,我还想暂停并恢复计时器

我的代码如下所示:

      var tag = document.createElement('script');

      tag.src = "https://www.youtube.com/iframe_api";
      var firstScriptTag = document.getElementsByTagName('script')[0];
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

      var player;
      function onYouTubeIframeAPIReady() {
        player = new YT.Player('ytvideo', {
          height: '390',
          width: '640',
          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          }
        });
      }

      function onPlayerReady(event) {
        event.target.playVideo();
        timerid = setTimeout(enableButtons, 10000)
      }

      function onPlayerStateChange(event) {
        if (event.data == YT.PlayerState.PAUSED) {

            // pause & resume ?

        }
      }

      function enableButtons() {

        document.getElementById("push").disabled = false; 
        document.getElementById("next").disabled = false; 

      }

您需要记下开始时间,如果视频暂停,记下暂停时间,计算经过的时间,重新启动时使用
10000-{previous appeased time}创建一个新的
setTimeout

希望下面的代码能够很好地演示这一点,以便与代码集成。这里有相当多的“绒毛”用于编写演示-我将用评论围绕这些对您有用的部分

var-timeId;
var startTime;
var pauseTime;
$('#start')。在('单击',函数()上){
//当你的视频开始时,记下时间
startTime=Date.now();
timerId=setTimeout(完成,10000);
//忽略下面
输出(“计时器运行10000ms”);
$('#pause').prop('disabled',false);
$(this.prop('disabled',true);
});
$('#pause')。在('单击',函数()上){
//当用户暂停视频时,清除超时并记下暂停时间
清除超时(timerId);
pauseTime=Date.now();
//忽略下面
out(“计时器暂停时带“+(10000-(暂停时间开始时间))+“剩余毫秒”);
$('resume').prop('disabled',false);
$(this.prop('disabled',true);
});
$('#resume')。在('单击',函数()上){
//当用户恢复时,计算剩余时间并开始新的超时
剩余变量=(10000-(暂停时间-开始时间));
设置超时(完成,剩余);
//忽略下面
out(“计时器运行“+剩余+”毫秒”);
$('#pause').prop('disabled',false);
$(this.prop('disabled',true);
})
//忽略下面
函数完成(){
退出(“计时器已完成”);
$('#start').prop('disabled',false);
$('#pause').prop('disabled',true);
}
功能输出(msg){
$('#output').html(msg);
}

开始
暂停
简历