在 iPad (iOS v. 5.1.1) 上,Safari 似乎没有根据规范保留视频元素的 readyState
值。即使从视频源加载 readyState
也为零。
我做了一个 demonstration jsfiddle which continuously checks the video's readyState
.一个有趣的观察:readyState
只有在点击播放按钮后才会改变。
实际上,我希望 readyState
在加载期间切换到更高的数字(因为我测试过的桌面上的所有浏览器都是这种情况——包括 Safari。)是否存在解决方法?我这里有什么问题吗?
最佳答案
来自Apple developer documentation :
Note: The preload attribute is supported in Safari 5.0 and later. Safari on iOS never preloads.
根据 Apple 的说法,移动设备上的理想行为是仅在您主动请求资源后才开始加载,以免浪费带宽或电池。
关于您的问题,这意味着 Apple 遵守规范。由于没有预加载发生并且仅在您单击播放按钮后才开始加载,因此 readyState
在该时间点之前为零。
但是,video
标签有特殊的事件,应该比 readyState
提供更多信息。
onCanplay
onCanplaythrough
onProgress
再次引用 Apple developer library (Using DOM Events to monitor load progress)
Note: On the iPad, Safari does not begin downloading until the user clicks the poster or placeholder. Currently, downloads begun in this manner do not emit progress events.
关于ios - ios safari 上 HTML5 视频元素的 readyState 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11633929/