似乎在iPad(iOS v.5.1.1)上,Safari根据规范不保留视频元素的readyState
值。即使从视频源readyState
加载等于零。
我做了demonstration jsfiddle which continuously checks the video's readyState
。一个有趣的观察:readyState
仅在单击播放按钮后才会更改。
实际上,我期望readyState
在加载过程中切换到更高的数字(就像我测试的桌面上的所有浏览器一样 - 包括Safari。)是否有解决方法?我在这里弄错了吗?
答案 0 :(得分:5)
来自Apple developer documentation:
注意:Safari 5.0及更高版本支持preload属性。 iOS上的Safari永远不会预加载。
根据Apple的说法,移动设备上的所需行为是只有在您主动请求资源后才开始加载,以免浪费带宽或电池。
关于你的问题,这意味着Apple正在遵守规范。由于没有发生预加载且仅在您单击播放按钮后开始加载,因此readyState
在该时间点之前为零。
但是,video
标记包含特殊事件,应该提供比readyState
更多的信息。
onCanplay
onCanplaythrough
onProgress
再次引用Apple developer library (Using DOM Events to monitor load progress)
注意:在iPad上,在用户点击海报或占位符之前,Safari不会开始下载。目前,以这种方式开始的下载不会发出进度事件。