小程序
小游戏
企业微信
微信支付
扫描小程序码分享
IOS真机 setTimeout 精确度不准
我给setTimeout 设置1020这种精确到10毫秒的时间,结果1000就执行了,感觉ios上精确度是到100毫秒,
目前需求是,视频和音频分离,音频根据视频长度,到某个点播下一个音频,例如1、2、3这种计数等,但是用setTimeout ,次数多了会越来越不准,以及有些音频由于setTimeout 提前执行了,没播出来就直接跳到下一个了,
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
我的意思是 setInterval 16.667 毫秒近似等于 requestAnimationFrame。
理论上频率足够高就行,反正是不断检查当前的时间戳,误差不会累积。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
setInterval 和setTimeout 都不准,要是有一个准的我就不用纠结了,这种重复很多次的,后面误差越来越大
那就 setInterval 16.6667ms 咯
小程序不支持requestAnimationFrame 。。。
谢谢解答,这思路不错,我试试
setTimeout 会因为主线程的阻塞而有延迟。
建议使用 Date.now() 获取时间戳作为矫正偏差的辅助,配合 requestAnimationFrame 一起使用(比如需求 interval 为 1000 毫秒,那就每个 raf 都判断当前时间距离上一个 tick 的时间戳的距离,如果大于一秒就立即触发某个事件)
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
我的意思是 setInterval 16.667 毫秒近似等于 requestAnimationFrame。
理论上频率足够高就行,反正是不断检查当前的时间戳,误差不会累积。
setInterval 和setTimeout 都不准,要是有一个准的我就不用纠结了,这种重复很多次的,后面误差越来越大
那就 setInterval 16.6667ms 咯
小程序不支持requestAnimationFrame 。。。
谢谢解答,这思路不错,我试试
setTimeout 会因为主线程的阻塞而有延迟。
建议使用 Date.now() 获取时间戳作为矫正偏差的辅助,配合 requestAnimationFrame 一起使用(比如需求 interval 为 1000 毫秒,那就每个 raf 都判断当前时间距离上一个 tick 的时间戳的距离,如果大于一秒就立即触发某个事件)