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

Umm*_*lly 2 javascript ios

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

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

setTimeout(showStartScreen, 30000);
setTimeout(showInstructionScreen, 60000);
Run Code Online (Sandbox Code Playgroud)

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

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

Nie*_*sol 7

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

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

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