HTML5 オーディオ コンテンツをプリロードしてから、再生しようとするたびにオーディオを再ダウンロードしようとするのではなく、キャッシュにあるものを使用するのに問題があります。
http://cs.sandbox.millennialmedia.com/~tkirchner/rich/K/kungFuPanda2_tj/
エクスペリエンスは、誰かがバナーをクリックすると、読み込みバー付きの広告がポップアップ表示されると想定されています。ローディング バーは、アニメーションに必要なすべての画像をロードしています。それまでの間、オーディオは DOM に既に存在するオーディオ タグを介してロードされます (これは問題ありません)。すべての画像が読み込まれると、読み込みバーが消え、ユーザーは続行できます。画面の下部には、クリックできる 4 つのボタンがあります。それらの 1 つをクリックするとオーディオ ファイルが再生され、画像はオーディオに同期するフリップブック スタイルのアニメーションを実行します。
音声タグ:
<audio id="mmviperTrack" src='tigress.mp3'></audio>
<audio id="mmmantisTrack" src='viper.mp3'></audio>
<audio id="mmtigressTrack" src='kungfu3.mp3'></audio>
<audio id="mmcraneTrack" src='crane.wav'></audio>
再生ボタン イベント リスナー:
button.addEventListener('click',function(){
if ( f.playing ) return false;
f.playing = true;
button.audio.play();
},false);
button.audio.addEventListener('playing', function(){
animate();
}, false);
問題は、javascript では、play() をクリックするたびに、オーディオ ファイルをリロードしてから再生することです。ボタンをクリックするたびにオーディオをリロードしようとするのではなく、最初に一度オーディオをロードして、メモリに保存されているものをオフにすることができないようです。
preload と autobuffer のプロパティを試してみましたが、モバイル サファリはこれらのプロパティを無視しているようです。それらを何に設定しても、動作は常に同じだからです。ソースタグとさまざまなファイル形式を試してみました...何もありません。
何か案は?