移动网络应用程序和离线访问音频文件

Posted

技术标签:

【中文标题】移动网络应用程序和离线访问音频文件【英文标题】:Mobile web app and offline access to audio files 【发布时间】:2011-09-22 12:17:35 【问题描述】:

是否可以使用 html5 缓存清单在移动 Web 应用程序中缓存音频文件以供离线访问? 我也不明白大小限制是如何工作的。 (我阅读了 ios 的 5MB 限制) 我没有找到相关资源或最佳做法。

感谢您的帮助

【问题讨论】:

另见***.com/questions/2970062/…和***.com/questions/1612116/… 感谢大卫指出这些 【参考方案1】:

是的 - AppCache 中列出的所有文件都被浏览器缓存,无论它们是 HTML 文件、javascript 还是音频文件。只要在 CACHE 部分明确提及它们,它们就可以离线使用。

如需优秀的 AppCache 教程,请查看 http://www.html5rocks.com/en/tutorials/appcache/beginner/,它会引导您完成所需的一切。

大小限制可防止您在用户计算机上存储过多内容。在大多数情况下,如果您只是存储 HTML、CSS、JavaScript 和一些图像,这不是问题,但在您的情况下,如果您存储音乐,您可能会很快达到这个限制。大多数浏览器限制您最多存储 5 兆(对于所有内容),因此您需要注意这一点。

Chrome 有一套很棒的调试 appcache 的工具,在您开发网站时,打开开发者工具并观察控制台看看会发生什么。

【讨论】:

谢谢老兄。我认为这个 5M 限制不是真正的限制,因为用户被警告并询问他是否想将限制增加 5M。是这样吗? 没问题 - 有些浏览器会提示,有些则不会。例如,移动浏览器通常不会提示,而桌面会提示。 这个答案与之前的 SO 帖子相冲突:***.com/questions/2970062/…。这些帖子是过时的,还是你在做一些不同的事情?我希望你是对的! 无论音频文件的大小如何,都无法在 android 手机上缓存音频文件。【参考方案2】:

通过缓存清单文件缓存音频文件在 5.1 及以下版本的 Android 手机上仍然不起作用。我不能为 Android 6 或 iPhone、iPad 说话,因为我没有这样的设备。但我在 Android 5.1 和 Android 3 上尝试了 mp3 文件,大小仅为 2 Kb,它们没有缓存在这些手机上,而缓存了 200 Kb 的 js 文件。

目前的解决方案似乎是用base 64对mp3文件进行编码,并将其放入可以缓存的js文件中。可以在 http://grinninggecko.com/2011/04/09/html5-offline-audio/ 上找到一个很好的描述。

【讨论】:

以上是关于移动网络应用程序和离线访问音频文件的主要内容,如果未能解决你的问题,请参考以下文章

注册移动设备以在外部网络中使用

移动网络应用程序的访问控制允许来源问题[重复]

如何在移动网络应用程序上全屏查看网络摄像头 [重复]

移动网络应用程序的推送通知工具[关闭]

HTML5 会支持离线缓存音频的访问吗?

实现在线和离线工作的应用程序的最佳方法是啥?