天天看點

html5 緩存mp3,緩存 – HTML5是否支援脫機緩存音頻的通路?

在我看來這應該工作,我找不到任何文檔說它不應該工作(無論是來自W3C還是來自像Apple這樣的供應商),但是将音頻檔案作為資源放在緩存清單中就不會似乎可以在iPad上使用Safari& iPhone至少.

當應用程式處于聯機狀态時聲音播放正常(雖然它似乎每次都會重新加載它們并且不會緩存它們)并且它不會抱怨在脫機模式下不存在的資源(如果您忘記包含這種情況會立即生效JavaScript,CSS,HTML或圖像資源).

而不是抱怨(或加載);如果元素有一個控件,控件被替換為“無法播放音頻檔案”的框.或者,如果它是一個沒有控件的元素 – 即通過JavaScript全部通路.play() – 那麼它隻是不播放(它不會導緻任何錯誤,沒有聲音,JavaScript否則繼續執行一般).

我用非常小的(< 20k)檔案測試了這個,結果是一樣的,是以它似乎與大小無關,隻是全面拒絕複制.我不确定你是否可以将聲音編碼為頁面中的資源(例如以base64編碼),就像你對圖像的方式一樣,但我會調查那個選項 - 我懷疑這是可能的.我嘗試将音頻資料編碼為資料URI字元串,甚至嘗試動态生成音頻 - 在桌面上的Safari中工作正常但在iPhone / iPad OS上無法工作(至少在3.x版本上 - 我還沒試過iOS 4,但它不會出現一個星期,并且預計幾個月不會用于iPad,即使他們确實修複了它). 我猜想拒絕在iOS中緩存聲音檔案是一個實作錯誤或意圖有限的功能.對于很多用例而言,它确實令人讨厭并且顯示出阻塞性. 我不确定其他HTML5用戶端會發生什麼,我有興趣知道(特别是在Andriod上).谷歌對音頻的支援也不是很好,是以它也可能受到同樣的限制.