我已经在试验的音频和地方储存功能的html5的延迟和遇到的东西,我难倒。

我想要能够缓存或存储来源的音频素在当地,以使更迅速和离线的播放。问题是我不能看到这是如何可能与目前的执行情况。

我已经尝试了下使用其:

  1. 创建一个清单文件中设置了当地的高速缓存,但音频文件似乎不是一个缓项目可能由于它的方式是流或什么的

  2. 我们还试图使用javascript把音频对象为本地储存但尺寸的mp3,使这个不可能的,由于存问题(我认为)。

  3. 我已经尝试使用的数据uri和base64使用html作为一个音频传输,可以缓,但再次filesize使这个令人望而却步。还有音频素似乎不是这样。(工作现在safari)

  4. 我已经尝试了多种方法将数据纳入地方数据库的存储。再次遭受同样问题的其他情况。

我很想听到任何其他的想法,任何人都可能如何,我可以实现我的目标线下放使用缓存/当地的存在。.

有帮助吗?

解决方案

所以我问这个问题已经有一段时间了,我想我会提供一些关于我们如何解决它的信息。基本上我们使用类似的技术将数据编码为PNG:

http://audioscene.org/scene-files/yury /pngencoding/sample.html

然后使用html5本地存储将图像缓存在移动设备上,并根据需要访问它。 PNG非常大,但这对我们有用。

其他提示

我一直试图在iOS(iPhone / iPad)上自己这样做,但它拒绝在离线状态下缓存音频文件,即使在Cache Manifest中也是如此。

它没有错误,而是简单地假装在没有控件的情况下通过JavaScript调用时播放了音频元素。如果它嵌入了一个控件,它会显示另一个控件,上面写着<!>“;无法播放音频文件。<!>”。如果应用程序能够联机,它可以正常工作。

似乎没有缓存音频,播放另一个声音资源似乎导致它从内存中清除以前的资源 - 即使在线时这也是毫无价值的功能。

我已尝试将base64编码为音频数据URI。这适用于桌面上的Safari(至少对于我一直在使用的大约20-30k的相当短的样本)但似乎在iOS上根本不受支持 - 它默默无效,这非常烦人。

我不了解其他供应商 - 谷歌浏览器曾经不支持音频的数据URI,但也许他们修复了它...... - 现在似乎不可能。但/ / p>

更新:与iPhone OS 3.x的轻微差异(使用3.1.2测试):如果在离线Web应用程序中指定了音频元素但它没有控件,则会显示一个非交互式控件,其中包含它上面没有动画的微调器(它绝对不应该这样做)。我认为这在iOS 4.x中已得到修复(下周应该会出来)。

我花了一段时间尝试为我正在制作的游戏做这件事,并且因为我可以告诉浏览器(Firefox和Chrome)仍然不支持音频元素的缓存我想我会发布解决方案我找到了。

此处描述了一种解决方法: http://dougx.net/plunder/index.php #CODE

我可以确认它的效果非常好,但可能更适合较小的文件。正如他在这里所描述的那样( http://dougx.net/plunder/GameSounds.txt ),你将音频编码为base64字符串,并为它们提供数据:audio / ogg; base64(或任何兼容的音频格式)标题,然后HTML5音频可以读入。因为这只是一个字符串,浏览器将缓存它。

我想最好让清单方法起作用,因为这感觉就像是本地缓存文件最相关的机制。

如果更改音频文件的HTTP标头会发生什么情况,例如Content-TypeExpires?如果文件扩展名已更改,浏览器会执行不同的操作吗?

我看到你们没有运气这么远。

你可能想看一看 JAI(JavaScript音频接口) ("世界上第一个javascript的网界面 <audio>").或者取得联系 阿拉斯泰尔*麦克唐纳, 谁写的。

如果做不到这一点, HTML5医生 可能能够协助。

将视频和音频文件添加到本地存储可与iOS 4.3一起使用。

我刚刚将一个视频和一个音频文件添加到了清单中,它们都被下载到iPad上的离线存储中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top