setTimeout不准
发布于 5 年前 作者 tanqiang 12887 次浏览 来自 问答

ios上setTimeout完全不准,例如我设置一个定时器setTimeout  1500,安卓可能1500~1502毫秒就执行了,ios可能1502~2000毫秒才执行,不一定延时多久,setInterval也一样不准

我现在做的是运动视频方面的小程序,视频和音频是分开的,一个视频动作可能1500毫秒,循环播,然后每1500毫秒数一个数1、2、3、4这种记次数,但是定时器不准,导致后面误差越来越大,可能动作已经做了一半了才开始数数,匹配不了。

安卓完全没问题

希望官方关注一下

7 回复

而且我代码没有太多计算,就是在视频播放的同时,单纯的设一个定时器,然后等到时间播下一个音频

建议去看看js中定时器的实现机制

可能和性能以及在这段时间内执行代码的耗时有关。可以写一个简单的 demo 倒计时 1500 毫秒,看看两者差距呢。

在 JavaScript 上 setTimeout 本身是有一定误差的。如果被延时的时间很长,请减少这段时间内的计算量,例如大量的同步的循环。

官方,

或者你把这个bug解决了,我就不需要用定时器了。。。

关于ios vedio循环播放时,不触发bindended 

https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=1160406771&docid=0006ea0de48ba03a933627afc5ec00

都是设置了1500毫秒,IOS的明显比安卓的误差大很多

但是同样的代码,在安卓上就没延迟这么大啊,安卓基本在1~2毫秒内

回到顶部