我正在创建一个适用于iPad的HTML5网络应用程序,但也可以在PC浏览器中运行。我正在使用javascript函数setTimeout将某些屏幕转换与在后台播放的音频文件同步。
具体来说,我正在使用的代码是:
setTimeout(showStartScreen, 30000);
setTimeout(showInstructionScreen, 60000);
在PC上,时机非常完美,转换与音频完美匹配。在iPad 2上,转换速度比PC快约半秒。在iPad 3上,转换速度更快。
是否有更可靠的方法来跨不同平台计时?
答案 0 :(得分:7)
您应该轮询音频currentTime
并对其进行操作,而不是创建超时并希望计时器保持同步。
setInterval(function() {
var now = audio.currentTime;
// do something based on the audio's position.
},25);
这假设您使用的是HTML5 <audio>
元素。