【问题标题】:iPhone web-app: HTML5 database and audio filesiPhone 网络应用程序:HTML5 数据库和音频文件
【发布时间】:2010-11-22 03:25:02
【问题描述】:
我在使用 iPhone 网络应用程序上的音频文件时遇到问题。似乎每次播放音频文件时,它都会先加载然后播放,即使在尚未刷新的页面上重复相同的音频(通过 javascript 完成)。根据我的研究,清单文件会很棒,但它们适用于离线应用程序。我现在正在研究 HTML5 数据库。
有谁知道 HTML5 数据库是否可以存储音频文件,例如 mp3?最终结果是从数据库中提取 mp3。它可能仍然需要每次从数据库加载文件,但我希望它比从服务器检索文件更快。
谢谢。
【问题讨论】:
标签:
iphone
database
audio
html
web-applications
【解决方案1】:
我认为你在之后是可能的,但是你有一个一个重大障碍,因为在大多数浏览器上实现 HTML5 数据库is limited to 5mb strong> 根据 w3c 的建议:
最多为 5 个任意限制
建议每个源使用兆字节。
话虽如此,它在 iPhone Safari 中的实现方式是数据库可以增长到 5MB 大小,此时浏览器会询问用户是否希望允许额外的大小,在 10、50、100 和 500MB 时再次询问(请参阅 this post by html5doctor 中的“估计的数据库大小”部分)。
数据库的数量没有限制,您可以在 safari 中每个域构建,但是根据 Cantina Consulting 的 this post您可以在单个域中的所有数据库中总共拥有 50MB。
鉴于这些参数,此实现的可能的解决方法是将您的 mp3 blob 拆分到多个数据库,每次达到 4.9MB 时创建一个新数据库,但是,即使您遵循此设计,它也可能并不理想,因为您仍然会遇到以下情况:
- 50MB 并不是很多音频文件,一首典型的 5/6 分钟歌曲在 128Khz 时大约是 5MB,因此只能为您提供大约 1CD(60 分钟)的 mp3 歌曲空间,之后您需要用户合作才能使用额外的数据库空间。
- 在尝试从 javascript 运行时播放 mp3 blob 时,您仍然会遇到严重的安全问题,可能会绕过这些欺骗性的 flash 以为它们是 mp3 流,但我不确定您将如何处理它。
随意玩弄这个 iPhone HTML5 SQL Client 我放在一起,你可能想用类似的东西来试验你的本地 mp3 数据库。