4

似乎在 iPad (iOS v. 5.1.1) 上,Safari 并未readyState根据规范保留视频元素的值。即使从视频源加载也readyState等于零。

我做了一个演示 jsfiddle,它不断检查视频的readyState. 一个有趣的观察:readyState只有在点击播放按钮后才会发生变化。

实际上,我希望readyState在加载过程中切换到更高的数字(因为我测试过的桌面上的所有浏览器都是这种情况——包括 Safari。)有解决方法吗?我这里有什么问题吗?

4

1 回答 1

6

来自Apple 开发者文档

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

根据 Apple 的说法,移动设备上的期望行为是仅在您主动请求资源后才开始加载,以免浪费带宽或电池。

关于您的问题,这意味着 Apple 遵守规范。由于没有发生预加载,并且仅在您单击播放按钮后才开始加载,readyState因此在该时间点之前为零。

但是,video标签有特殊事件,应该提供比readyState.

  • onCanplay
  • onCanplaythrough
  • onProgress

再次引用苹果开发者库(Using DOM Events to monitor load progress)

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

于 2012-07-28T11:02:13.070 回答