缓存 – HTML5是否支持脱机缓存音频的访问?

我们想制作一个基于音频的网络应用程序,它将包含许多声音片段.我们希望缓存这些文件,以便性能良好并且不依赖于网络速度. HTML5可以将音频缓存为离线模式吗?

解决方法

在我看来这应该工作,我找不到任何文档说它不应该工作(无论是来自W3C还是来自像Apple这样的供应商),但是将音频文件作为资源放在缓存清单中就不会似乎可以在iPad上使用Safari& iPhone至少.

当应用程序处于联机状态时声音播放正常(虽然它似乎每次都会重新加载它们并且不会缓存它们)并且它不会抱怨在脱机模式下不存在的资源(如果您忘记包含这种情况会立即生效JavaScript,CSS,HTML或图像资源).

而不是抱怨(或加载);如果元素有一个控件,控件被替换为“无法播放音频文件”的框.或者,如果它是一个没有控件的元素 – 即通过JavaScript全部访问.play() – 那么它只是不播放(它不会导致任何错误,没有声音,JavaScript否则继续执行一般).

我用非常小的(< 20k)文件测试了这个,结果是一样的,所以它似乎与大小无关,只是全面拒绝复制.我不确定你是否可以将声音编码为页面中的资源(例如以base64编码),就像你对图像的方式一样,但我会调查那个选项 - 我怀疑这是可能的.我尝试将音频数据编码为数据URI字符串,甚至尝试动态生成音频 - 在桌面上的Safari中工作正常但在iPhone / iPad OS上无法工作(至少在3.x版本上 - 我还没试过iOS 4,但它不会出现一个星期,并且预计几个月不会用于iPad,即使他们确实修复了它). 我猜想拒绝在iOS中缓存声音文件是一个实现错误或意图有限的功能.对于很多用例而言,它确实令人讨厌并且显示出阻塞性. 我不确定其他HTML5客户端会发生什么,我有兴趣知道(特别是在Andriod上).谷歌对音频的支持也不是很好,所以它也可能受到同样的限制.

相关文章

HTML5不是新事物。自从最初发布(2008年1月)以来,我们一直在使用它的一些功能。后来,我再次仔细查看...
Pointer Events API 是Hmtl5的事件规范之一,它主要目的是用来将鼠标(Mouse)、触摸(touch)和触控笔(...
CSS动画非常的有趣;这种技术的美就在于,通过使用很多简单的属性,你能创建出漂亮的消隐效果。其中代表...
clip-path介绍 clip-path 直译过来就是裁剪路径,使用SVG或形状定义一个HTML元素的可见区域的方法。想象...
语法 必需。动画时长的百分比。 合法的值: 0-100% from(与 0% 相同) to(与 100% 相同) 定义和用法...
基本代码 html代码: 首先定义一些基本的样式和动画: background-size: auto 100%; 这段代码的意思是让...