setTimeout在iPad和PC上的运行速度更快

时间:2012-09-22 01:58:20

标签: javascript ios

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

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

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

在PC上,时机非常完美,转换与音频完美匹配。在iPad 2上,转换速度比PC快约半秒。在iPad 3上,转换速度更快。

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

1 个答案:

答案 0 :(得分:7)

您应该轮询音频currentTime并对其进行操作,而不是创建超时并希望计时器保持同步。

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

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