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

前端之家收集整理的这篇文章主要介绍了缓存 – 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相关文章