ios safari上的HTML5video元素的readyState问题

在iPad上(iOS 5.1.1),Safari并没有根据规范保留video元素的readyState值。 即使从video源readyState加载等于零。

我做了一个演示jsfiddle不断检查video的readyState 。 一个有趣的观察:只有在点击播放button后, readyState才会改变。

实际上,我期望readyState在加载过程中切换到更高的数字(就像我testing的桌面上的所有浏览器都是这种情况 – 包括Safari)。是否有解决方法? 我在这里弄错了什么?

从Apple开发者文档 :

注意:Safari 5.0及更高版本支持预加载属性。 iOS上的Safari永远不会预加载。

根据苹果在移动设备上所需的行为是,只有在您主动请求资源后才开始加载,以免浪费带宽或电池。

关于你的问题,这意味着苹果是坚持规范。 由于没有发生预加载,只有在点击播放button之后才开始加载,则在该点之前readyState为零。

但是, video标签有一些特殊的事件,比起readyState ,它们可以提供更多的信息。

  • onCanplay
  • onCanplaythrough
  • onProgress

再次引用Apple开发者库(使用DOM事件监视加载进度)

注意:在iPad上,Safari不会开始下载,直到用户单击海报或占位符。 目前,以这种方式开始的下载不会发送进度事件。