Youtube的APi:"当前时间"并不准确

时间:2016-03-14 18:26:44

标签: javascript numbers youtube-api

我想在播放器播放时每秒获得当前时间,但我希望它是整数,而且我从来没有得到一个精确数字。 是的我没有使用Math.round()和Math.ceil()来解决这个问题,但后来我有时会得到两次相同的数字,因为它有时会以错误的方式对数字进行舍入。

  function checkstop() {
      if(done == true ){
        setTimeout(checkstop, 1000);
        currenttime =  player.getCurrentTime();
        $('.holderrs').html(Math.round(currenttime));
     }
  }
播放时输出

1,2,3,3,5,6,7,7,9,10,11,12,13,13,15 ......

1 个答案:

答案 0 :(得分:1)

setTimeout仅保证在您的情况下1000毫秒后checkstop函数将调用not less then。所以,我想,最好使用较短的时间段。例如:

var previousValue;
function checkstop() {
    if (done === true) {
        currenttime =  Math.round(player.getCurrentTime());
        if (previousValue !== currenttime) { // but set new value only if previous value is not equal new value
             previousValue = currenttime;
             $('.holderrs').html(currenttime);
        }
        setTimeout(checkstop, 100); // call after each 100 milliseconds
     }
  }