setTimeout不准

发布于 6 年前作者 tanqiang13135 次浏览最后编辑 6 年前来自 ask

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

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

安卓完全没问题

希望官方关注一下

7 回复
tangjing
tangjing1 楼6 年前

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

taojun
taojun2 楼6 年前

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

zhouchao
zhouchao3 楼6 年前

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

nluo
nluo4 楼6 年前

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

fang82
fang825 楼6 年前

官方,

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

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

https://developers.weixin.qq.com/blogdetail?action=get\_post\_info&lang=zh\_CN&token=1160406771&docid=0006ea0de48ba03a933627afc5ec00

xiuyingjin
xiuyingjin6 楼6 年前

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

pingfu
pingfu7 楼4 年前

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