我似乎无法让 iPhone 或 iPad 上的 Safari 离线缓存视频。当我离线时,其他所有内容都会很好地缓存。视频文件显然在清单中,但我只是得到了断箭头。在 Safari 桌面上运行良好。有什么线索吗?我已经尝试过对象嵌入和视频标签。
7 回答
遗憾的是,Mobile Safari 中的离线缓存有约 5 MB 的限制。您对此无能为力。
iPhone 不会缓存音频和视频,因为它们是由外部应用程序播放的。似乎唯一的解决方法是将它们作为 base64 存储在本地数据库中,或者将它们作为 php(或类似)文件缓存在应用程序清单中,但具有 base64 编码的音频和视频内容。
有关移动浏览器缓存限制,请参阅这两篇文章(请注意,第二篇添加了重要信息):
http://www.yuiblog.com/blog/2010/06/28/mobile-browser-cache-limits/
http://www.yuiblog.com/blog/2010/07/12/mobile-browser-cache-limits-revisited/
它通常只涵盖 html 和“外部资源”,但它们没有明确测试视频文件,因此 Mobile Safari 可能从未缓存这些文件。
使用清单缓存包含视频标签的 html 页面,然后告诉您的网络服务器在 30 年后使视频过期。这样视频将在浏览器缓存而不是清单缓存中。
也许这样的事情会起作用:http ://www.nihilogic.dk/labs/jsvideo/test2.php
iPad 上的 iOS 4.3 更新:
我刚刚尝试在 iOS 4.3 中将电影添加到清单文件中。
Safari 要求我允许扩展离线存储,然后下载电影。
我读过它需要一个 html5 清单设置来缓存文件