2016-03-14 3 views
1

Я хочу получать текущее время каждую секунду, когда игрок играет, но я хочу, чтобы он был целым числом, и я никогда не получаю номер префикса. Правильно нет Я использую Math.round() и Math.ceil(), чтобы исправить это, но иногда я получаю одно и то же числовое шоу дважды, так как он иногда округляет число до неправильного пути.APi: «текущее время» неточно

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

setTimeout только гарантия, что checkstop функция будет вызывать not less then после 1000 миллисекунд в вашем случае. Поэтому, я думаю, лучше использовать меньшие периоды времени. Например:

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 
    } 
    } 
+0

Спасибо, много! – Christopher

Смежные вопросы