2

iPad用のHTML5Webアプリを作成していますが、PCブラウザーでも実行できます。javascript関数setTimeoutを使用して、一部の画面遷移をバックグラウンドで再生されているオーディオファイルと同期しています。

具体的には、私が使用しているコードは次のとおりです。

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

PCの場合、タイミングは完璧で、トランジションはオーディオとうまく一致します。iPad 2では、移行はPCよりも約0.5秒速くなります。iPad 3では、移行はさらに高速です。

異なるプラットフォーム間で何かを計時するためのより信頼できる方法はありますか?

4

1 に答える 1

7

タイムアウトを作成してタイマーの同期を維持することを期待するのではなく、オーディオをポーリングcurrentTimeしてそれに基づいて動作する必要があります。

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

これは、HTML5<audio>要素を使用していることを前提としています。

于 2012-09-22T02:03:18.137 に答える