2016-11-17 48 views
1

我正在構建一個HTML5網頁遊戲,對經典小行星遊戲進行精確的旋轉。我遇到的問題是,與Chrome或Firefox不同,Safari不會自動緩存和使用.wav聲音文件。如果發生大量聲音,這會導致嚴重滯後。上需要一個「射擊」的聲音的每個實例,瀏覽器將執行新的GET請求來獲取音頻文件,如下所示:Safari不利用應用程序緩存清單

Audio files Cached:No

,你會看到151013__bubaproducer__laser經典拍-2 .wav是一次又一次通過網絡請求的拍攝聲音,不會被緩存。在企圖迫使Safari瀏覽器緩存文件,我創建了一個Asteroids.manifest文件的應用程序緩存利用:

enter image description here

是的,這是相對於雙方的index.html正確的目錄位置以及Asteroids.manifest。和清單文件確實出現了被消耗掉,因爲它在Safari瀏覽器的調試器存儲可見:

enter image description here

請讓我知道如果您有任何建議,因爲我已經嘗試了各種不同設置的.manifest文件,包括命名它.appcache,確保它提供MIME類型的文本/緩存清單,並刪除NETWORK/CACHE/FALLBACK字段

編輯說明:window.applicationCache.status )是1(空閒)

+0

如果這個問題是正確的,你可能可以調整wav文件中的頭文件以便至少在第一次播放後將其緩存起來:http://stackoverflow.com/questions/11094414/caching-sounds-on-移動Safari瀏覽器 – dandavis

回答

2

我認爲即使在m中列出了Safari,也不會緩存音頻文件anifest文件。您是否嘗試過將音頻編碼爲BASE64字符串,並在啓動時解碼/轉換回音頻?看看WepApi,它可能可以幫助你完成這個過程。

1

如果你的意思是移動的,那麼這裏還有一些帖子:HTML5 offline video caching in mobile safari

總之,對於在移動Safari瀏覽器緩存中的〜5MB的限制。桌面上可能有類似的東西。另一張海報稱,由於iPhone是由外部應用程序播放的,所以音頻&視頻不會被iPhone緩存。似乎唯一的解決方法是將它們作爲base64存儲在本地數據庫中(或者也可能是本地存儲) - 請記住「在私人瀏覽器中禁用它」)。

如果沒有,如果您計劃定位移動版本,可能需要考慮一些事項。

相關問題