HTMLMediaElement: readyState 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

HTMLMediaElement.readyState 属性指示媒体的就绪状态。

一个数字,表示 HTMLMediaElement 接口上定义的五个可能状态常量之一。

HTMLMediaElement.HAVE_NOTHING (0)

关于媒体资源,没有可用信息。

HTMLMediaElement.HAVE_METADATA (1)

媒体资源的足够部分已被检索,可以初始化元数据属性。此后,seeking 不会再引发异常。

HTMLMediaElement.HAVE_CURRENT_DATA (2)

当前播放位置的数据可用,但不足以播放超过一帧。

HTMLMediaElement.HAVE_FUTURE_DATA (3)

当前播放位置以及至少稍后一段时间的数据都可用(例如,至少有两帧视频)。

HTMLMediaElement.HAVE_ENOUGH_DATA (4)

已有足够的数据,并且下载速率足够高,可以不中断地将媒体播放到结束。

示例

此示例将监听 example 元素的音频数据加载。然后,它将检查是否至少已加载当前播放位置的数据。如果已加载,则会播放音频。

html
<audio id="example" preload="auto">
  <source src="sound.ogg" type="audio/ogg" />
</audio>
js
const obj = document.getElementById("example");

obj.addEventListener("loadeddata", () => {
  if (obj.readyState >= HTMLMediaElement.HAVE_CURRENT_DATA) {
    obj.play();
  }
});

规范

规范
HTML
# dom-media-readystate-dev

浏览器兼容性

另见