我們想製作一個基於音頻的網絡應用程序,它會有很多聲音片段。我們希望緩存這些文件,以便性能良好,而不依賴於網絡速度。 HTML5能否將音頻緩存爲離線模式?HTML5是否支持離線緩存音頻的訪問?
回答
在我看來,這應該是工作,我找不到任何文件說它不應該工作(無論是從W3C或像蘋果的供應商),但將音頻文件作爲資源緩存清單似乎不適用於iPad至少在iPhone上使用iPhone &。
當應用程序處於在線狀態時,聲音播放正常(儘管它每次都會重新載入它們並且不緩存它們),並且它不會抱怨在離線模式下不存在的資源您忘記了包含JavaScript,CSS,HTML或圖片資源)。
而不是抱怨(或加載);如果該元素有一個控件,該控件被替換爲「無法播放音頻文件」的框。或者,如果它是一個沒有控件的元素(即通過JavaScript訪問所有.play()),那麼它就不會播放(它不會導致任何錯誤,只是沒有聲音,否則JavaScript會繼續執行一般)。
我用相當小的文件(< 20k)測試了這個文件,結果是一樣的,所以它看起來沒有大小相關,僅僅是一個拒絕拷貝。
我不確定您是否可以將聲音編碼爲頁面中的資源(例如使用base64進行編碼),但是我會調查該選項 - 我懷疑這是可行的。
我嘗試將音頻數據編碼爲數據URI字符串,甚至試圖隨時生成音頻 - 在桌面上的Safari中均可正常工作,但不適用於iPhone/iPad操作系統(至少在版本3.x上 - 我沒有試過在iOS 4上,但它不會出現一個星期,即使他們確實修復它也不會在iPad上使用幾個月。
我猜想拒絕在iOS中緩存聲音文件是一個實現錯誤或意圖有限的功能。這無疑是令人討厭的,也是很多用例的一個阻礙。
我不確定其他HTML5客戶端會發生什麼,我很想知道(特別是在Andriod上)。谷歌對音頻的支持也不是很好,所以它可能會受到同樣的限制。
你總是可以開發一個可與客戶端SQLlite DB
每個應用程序的存儲沒有5兆的限制嗎? – 2010-06-21 03:05:00
我看不出有任何理由,你爲什麼不能在cache manifest指定音頻文件的解碼/編碼層。
似乎可能存在問題,請參閱此處:http://stackoverflow.com/questions/1612116/html5-local-storage-of-audio-element-source-is-it-possible – UpTheCreek 2011-03-02 09:02:57
- 1. Phonegap是否支持離線存儲緩存清單?
- 2. 離線緩存 - HTML5
- 3. HTML5離線緩存
- 4. Android HTML5視頻離線緩存
- 5. html5音頻和支持Javascript
- 6. 訪問緩存orientdb離線
- 7. HTML5是否支持視頻的HTTP Psuedostreaming?
- 8. SQLAlchemy是否支持緩存?
- 9. AMF是否支持緩存?
- 10. Android可以緩存緩存清單HTML5視頻離線嗎?
- 11. HTML5離線緩存大小
- 12. HTML5更新離線緩存
- 13. Phonegap是否支持html5音頻標籤播放本地音頻文件?
- 14. HP TouchPad是否支持HTML5的離線應用程序(清單)
- 15. HTML5音頻:如何檢查是否支持playbackRate?
- 16. 支持HTML5音頻標籤的MIDI?
- 17. 亞音速支持緩存
- 18. Android mediaplayer是否支持HLS音頻流?
- 19. 對JSR 286 portlet的HTML5離線支持
- 20. HTML5音頻不支持android Webview
- 21. HTML5視頻標籤音量支持
- 22. 使用Modernizr檢測html5音頻支持
- 23. HTML5離線緩存數據庫存儲
- 24. HTML5音頻支持什麼音頻格式
- 25. HTML5視頻支持
- 26. HTML5音頻緩存 - 不止一次?
- 27. Google的GTMOAuth2Authentication客戶端是否支持授予離線訪問權限?
- 28. Android WebView是否支持html5?
- 29. J2ME是否支持HTML5?
- 30. 什麼是在HTML5中嵌入音頻的支持格式?
僅供參考JavaScript .play()在控制少的元素上不起作用,因爲它在iphone/ipad的safari中是不允許的(必須有用戶輸入)。至於「無法播放音頻文件」,我發現它發生是因爲該文件不受支持。出於某種原因,這發生在我身上的某些mp3文件。 – 2010-09-07 06:13:57
@jd謝謝,但澄清,我看到的是,JavaScript實際上工作正常,但只有你有(快速)連接(如果它很慢,它是間歇性的,因爲它不斷重新獲取聲音文件)。緩存清單僅適用於離線HTML5應用程序中的聲音文件 - 連接JavaScript調用可以工作(並且所有聲音文件都可以工作)。這似乎與文件大小無關。 – 2010-09-07 15:27:18
感謝您的寫下。我剛剛測試過它,它與你所說的一致。非常糟糕。 – airportyh 2011-03-06 04:12:10