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