在ios safari上使用HTML5视频元素的readyState问题

art*_*oex 4 safari html5 ios

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

我做了一个演示jsfiddle,不断检查视频readyState.一个有趣的观察:readyState只有在点击播放按钮后才能进行更改.

实际上,我希望readyState在加载过程中切换到更高的数字(就像我测试的桌面上的所有浏览器一样 - 包括Safari.)是否有解决方法?我在这里弄错了吗?

Tor*_*ter 6

来自Apple开发人员文档:

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

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

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

但是,video标签有特殊事件,应该提供更多的信息readyState.

  • onCanplay
  • onCanplaythrough
  • onProgress

再次引用Apple开发人员库(使用DOM事件来监控加载进度)

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