私はいくつかのボタンをクリックするだけで非常に短いサウンドビットを再生する小さな Web アプリを持っています。iOS (iPad) 上のモバイル Safari を明示的にターゲットにしています。
モバイル Safari でのこのコンテキストにおける HTML5 オーディオのいくつかの「欠点」についてここや他の場所で読み、いくつかの「ハック」とトリックを試した後、私は Safari が単純に見える状況に行き詰まりました (より適切な言葉がないため)。壊れた:
ボタン A をクリックすると、サウンド A を再生できます (開始までに長い時間がかかります — [再度] ダウンラディングしていると思いますか?)。その後、ボタン B をクリックすると、すぐにサウンド A が再び再生されます。ボタン C も同様です。場合によっては、別のサウンドが再生されることもあります。しかし、ほとんどが音 A です。使用されている形式は .aiff でしたが、現在は .m4a です。
自分でいくつかの小さなバージョンを作成した後、サウンドの読み込み/再生などを処理するためにBuzzライブラリを使用することにしました.
おかしなことに、彼らのデモにはゲームが含まれており、これは私が必要としているものとほとんど同じであり、同じ欠陥のある動作を引き起こします. モバイル Safari の任意のタブのオーディオ プレーヤーが、Buzz デモ ゲーム (!) から特定のサウンドを再生する状況にさえなりました。
キャッシュ マニフェストが Apple のプリロード制限を克服し、アプリがオフライン モードでボタンを押した直後にサウンドを再生するように強制するのに役立つことを期待していました。しかし、アプリ全体がキャッシュされていることを確認した後、オフライン モードでサウンドを再生/聞くことができません。
このようなものをどうにかして機能させることができた人はいますか?(— Apple が特定のことをどのように処理するかを見てきたので、あまり反応は期待できませんが…)
更新 1:
この回答の例は、同じ効果を引き起こします: iPad で HTML5/Javascript を使用してオーディオを合成する方法
更新 2:
iOS (および Safari) を更新すると、オーディオのバグが解決されるようです。ただし、キャッシュ マニフェストはオーディオ ファイルには影響しないようです。これらのファイルはまったく利用できません。
キャッシュ マニフェストを削除した後、アプリは正常に動作しますが、「ホーム画面」に追加してリロードすると、オーディオも再生されなくなります。