我在HTML5中製作應用程序,在其中選擇視頻文件,然後應用程序使用HTML5 video
標記和window.URL.createObjectURL()
播放它。問題是,我要救這個視頻在localStorage的數據,並在用戶使用我的應用程序再次發揮它,但作爲Mozilla MDN states這個方法的結果:如何保存window.URL.createObjectURL()結果以供將來使用?
瀏覽器會自動釋放這些文檔時被卸載
那麼有可能做我想做的事嗎?或者在沒有window.URL.createObjectURL()
的情況下做同樣的事情,但要做其他事情?
這與createObjectURL()不同,因爲createObjectURL()只鏈接到用戶計算機中的文件,而使用FileReader它將文件的所有數據放入內存中。這對於圖片非常有用,因爲它們並不重要,但我計劃用戶使用我的應用程序播放的視頻可能會達到1GB,並且您不希望所有這些內容在已經存在的情況下進入您的內存保存在你的機器上...... – Cokegod
對,但我不認爲'createObjectURL()'提供了一個*持久*參考文件 - 這就是爲什麼當頁面被卸載時它被撤銷。允許持續引用文件 - 例如通過文件路徑 - 將是一個安全問題。這就是爲什麼我建議你需要保存整個事情。 – nrabinowitz
您可以將無限數據寫入FileSystem API(並通過指定'window.PERSISTENT'來保持它的持久性)。 'window.requestFileSystem(window.TEMPORARY,10 * 1024 * 1024/* 10 MB * /,onInitFs,errorHandler)' [請參閱html5Rocks教程](http://www.html5rocks.com/en/) tutorials/file/filesystem /) 只需設置您希望使用的數據量。 –