javascript - setTimeout 在 iPad 上比在 PC 上运行得更快

标签 javascript ios

我正在创建一个适用于 iPad 的 HTML5 网络应用程序,但它也可以在 PC 浏览器中运行。我正在使用 javascript 函数 setTimeout 将一些屏幕转换与在后台播放的音频文件同步。

具体来说,我使用的代码是:

setTimeout(showStartScreen, 30000);
setTimeout(showInstructionScreen, 60000);

在 PC 上,时间安排完美,过渡与音频完美匹配。在 iPad 2 上,转换比在 PC 上快大约半秒。在 iPad 3 上,转换速度更快。

有没有更可靠的方法来跨不同平台计时?

最佳答案

与其创建超时并希望计时器保持同步,不如轮询音频的 currentTime并采取行动。

setInterval(function() {
    var now = audio.currentTime;
    // do something based on the audio's position.
},25);

这假设您使用的是 HTML5 <audio>元素。

关于javascript - setTimeout 在 iPad 上比在 PC 上运行得更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12540077/

相关文章:

javascript - 是否可以仅在函数闭包内应用对象的原型(prototype)?

ios - 如何只为右侧添加阴影?

iphone - 如何使用界面生成器构建长界面

ios - 简单计算如何避免Nil/nan

ios - 无法从 Localizable.strings 文件中检索本地化字符串

ios - 为什么类 AppDelegate 继承自 UIResponder?

javascript - 将 Node.js/Mongo 应用程序从 Redhat Openshift2 升级到 Openshift3,mongodb URI 是什么?

javascript - 将函数从 obj 传递到数组。然后将数组相加,但结果为 NaN。为什么?

javascript - 使用 Google Maps Javascript API 从一组预定义位置获取最近的位置

javascript - jQuery 将选择字段和文本输入值实时合并到另一个文本字段