HTMLMediaElement.readyState

HTMLMediaElement.readyState 属性返回音频/视频的当前就绪状态。

语法

var readyState = audioOrVideo.readyState;

返回值

无符号整型 An unsigned short.

Constant Value Description
HAVE_NOTHING 0 没有关于音频/视频是否就绪的信息
HAVE_METADATA 1 音频/视频已初始化
HAVE_CURRENT_DATA 2 数据已经可以播放(当前位置已经加载) 但没有数据能播放下一帧的内容
HAVE_FUTURE_DATA 3 当前及至少下一帧的数据是可用的(换句话来说至少有两帧的数据)
HAVE_ENOUGH_DATA 4  可用数据足以开始播放-如果网速得到保障 那么视频可以一直播放到底

实例

这个例子会监听id为example的 audio 的数据. 他会检查当前位置是否可以播放, 会的话执行播放。

<audio id="example" preload="auto">
 <source src="sound.ogg" type="audio/ogg" />
</audio>

var obj = document.getElementById('example');

obj.addEventListener('loadeddata', function() {

  if(obj.readyState >= 2) {
    obj.play();
  }

});

 

参考文档

Specification Status Comment
HTML Living Standard
HTMLMediaElement.readyState
Living Standard No change from HTML5
HTML5
HTMLMediaElement.readyState
Recommendation Initial definition.

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) 3.5 (1.9.1) [1] 9 ? ?
Feature Android Firefox Mobile (Gecko) Firefox OS (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) ? (Yes) (Yes)

[1] The NETWORK_LOADED state was removed to align with the HTML spec in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1). 

你或许还可以看看