我在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 /) 只需设置您希望使用的数据量。 –