2016-11-17 7 views
1

私はHTML5ウェブゲームを構築しています。正確な古典小惑星ゲームをスピンアップしています。私が取り組んでいる問題は、SafariがChromeやFirefoxとは異なり、自動的に.wavのサウンドファイルをキャッシュして使用しないということです。これは、音が大量に発生している場合、かなりのラグを引き起こしています。下図のように「撮影」の音を必要とする各インスタンスでは、ブラウザは、オーディオファイルを取得するために、新たなGETリクエストを実行します。Safariはアプリケーションキャッシュマニフェストを使用していません

Audio files Cached:No

はあなたが表示されますこと151013__bubaproducer__laserクラシックショット-2 .wavは、ネットワーク経由で何度も何度も要求されていて、キャッシュされていない撮影音です。このファイルをキャッシュするためのSafariを強制しようとする試みでは、私が利用するappcacheためAsteroids.manifestファイルを作成しました:

enter image description here

はい、それはindex.htmlの両方への正しいディレクトリの場所の相対的ですAsteroids.manifestと同様に。そして、マニフェストファイルは、それはSafariのデバッガストレージに表示されているように、消費されるように表示されています:

enter image description here

私はの異なる設定の多様性を試みたとして、あなたが何か提案がある場合は私に知らせてください.manifestファイルに名前を付けること、.appcacheに名前を付けること、MIMEタイプのtext/cache-manifestを使用して提供すること、ネットワーク/キャッシュ/フォールバックフィールドを削除することなどが含まれます。

編集注:window.applicationCache.status )は1(アイドル)

+0

wavファイルのヘッダーを微調整して、最初の再生後にキャッシュに入れることができます(この質問が正しい場合):http://stackoverflow.com/questions/11094414/caching-sounds-on-モバイルサファリ – dandavis

答えて

2

Safariはmでリストされていてもオーディオファイルをキャッシュしないと思いますanifestファイル。あなたはBASE64文字列としてオーディオをエンコードしようとしましたが、デコード/起動時にオーディオに戻って変換しましたか? WepApiを見ると、おそらくそのプロセスに役立つことがあります。

1

モバイル意味ならば、いくつかの記事がここにあります。要するにHTML5 offline video caching in mobile safari

、モバイルSafariでのキャッシュのための〜の5メガバイトの限界があります。デスクトップにも同様のものがあるかもしれません。もう1人のポスターによると、オーディオ&のビデオはiPhoneでキャッシュされていない。唯一の回避策は、それらをローカルデータベース(またはおそらくローカルストレージ)にbase64として保存することです - 「プライベート」ブラウジングでは無効にすることを覚えておいてください。

モバイル版をターゲットにする予定がある場合は、考慮する必要があります。

関連する問題