我想在播放器播放时每秒获得当前时间,但我希望它是整数,而且我从来没有得到一个精确数字。 是的我没有使用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 ......
答案 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
}
}