【问题标题】:persist file reference with html5使用 html5 持久化文件引用
【发布时间】:2012-06-07 02:01:39
【问题描述】:

我正在尝试从本地文件系统播放媒体文件。用户现在通过“输入”选择一个文件并播放它。我希望保留那个文件引用,这样当用户下次访问时,我应该能够告诉他/她他/她之前玩过多少次等等,

我应该从服务器下载文件引用或将其存储在本地..任何想法如何执行此操作?

【问题讨论】:

  • 我目前暂时解决了这个问题,要求用户每次打开网站时选择文件。将数据保存在 db 中,使用字节大小作为唯一 ID。

标签: javascript html filereader


【解决方案1】:

您可以使用IndexedDBlocalStorage将音频或视频的信息存储到客户端。本地存储更易于使用 IMO:

var obj = {
        "timestamp": new Date(),
        "title": "Blah Blah",
        "Performer": "Lady Blahblah"
    };

localStorage["previous"] = JSON.stringify(obj);

但请注意,您将无法获得文件的完整路径,这会阻止您下次播放相同的文件。一种可能的解决方案是将文件存储在Base-64中,然后直接放入<video><audio>,我就是用这种方法将文件存储在我制作的Google Chrome扩展中。

【讨论】:

  • 这会复制整个数据对吗? ...我目前正在考虑允许用户播放整套歌曲.. :( 如果只有我可以存储文件路径,那就太棒了
  • @Skeptor - 由于安全原因,您无法知道完整路径。实际上,将所有歌曲存储在数据库 (WebSQL) 中并不是一个坏主意,因为这是它的目的。
  • 所以知道压缩了多少(如果有的话)
【解决方案2】:

您是否有任何理由需要存储文件本身?从我读到的内容听起来你只是希望能够记录它的播放次数。这可以通过对文件进行哈希处理,然后将您的计数与文件的哈希相关联,而不是将文件本身保存在 localstorage 之类的地方。

使用 javascript md5 实现的简短示例,由我在 google 上找到的某人包含在 cmets 中。

http://jsfiddle.net/influenztial/b3b2V/2/

【讨论】:

  • 我可能有 1000 多个文件,散列很难:(。我找到了一个临时解决方案,在问题的 cmets 中添加。请评论它
【解决方案3】:

您可以做的是将 user.recent_files(只是名称)存储在数据库中,并进行一些汇总计算以显示他之前查看了多少次。

你不能做的是让他点击之前阅读文件的链接再次阅读它,我的意思是只有 HTML5。

Rgds.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-29
    • 2020-04-05
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 2011-02-04
    相关资源
    最近更新 更多