HTML5 DOM 为 <audio> 和 <video> 元素提供了方法、属性和事件。

W3C

HTML 音频/视频 方法

方法描述
addTextTrack()向音频/视频添加新的文本轨道。
canPlayType()检测浏览器是否能播放指定的音频/视频类型。手册
load()重新加载音频/视频元素。更改来源或其他设置后对音频/视频(audio/video)元素进行更新
play()开始播放音频/视频。
pause()暂停当前播放的音频/视频。

HTML 音频/视频属性

属性描述
audioTracks返回表示可用音频轨道的 AudioTrackList 对象。
autoplay设置或返回是否在加载完成后随即播放音频/视频。默认:false
buffered返回表示音频/视频已缓冲部分的 TimeRanges 对象。
  • length - 获得音频/视频中已缓冲范围的数量
  • start(index) - 获得某个已缓冲范围的开始位置
  • end(index) - 获得某个已缓冲范围的结束位置

注释:第一个缓冲范围的下标是 0。

controller返回表示音频/视频当前媒体控制器的 MediaController 对象。
controls设置或返回音频/视频是否显示控件(比如播放/暂停等)。
crossOrigin设置或返回音频/视频的 CORS 设置。
currentSrc返回当前音频/视频的 URL。
currentTime设置或返回音频/视频中的当前播放位置(以秒计)。
defaultMuted设置或返回音频/视频默认是否静音。
defaultPlaybackRate设置或返回音频/视频的默认播放速度。
duration返回当前音频/视频的长度(以秒计)。
ended返回音频/视频的播放是否已结束。
error返回表示音频/视频错误状态的 MediaError 对象。
loop设置或返回音频/视频是否应在结束时重新播放。
mediaGroup设置或返回音频/视频所属的组合(用于连接多个音频/视频元素)。
muted设置或返回音频/视频是否静音。
networkState返回音频/视频的当前网络状态。
  • 0 = NETWORK_EMPTY - 音频/视频尚未初始化
  • 1 = NETWORK_IDLE - 音频/视频是活动的且已选取资源,但并未使用网络
  • 2 = NETWORK_LOADING - 浏览器正在下载数据
  • 3 = NETWORK_NO_SOURCE - 未找到音频/视频来源
paused设置或返回音频/视频是否暂停。
playbackRate设置或返回音频/视频播放的速度。
played返回表示音频/视频已播放部分的 TimeRanges 对象。
  • length - 获得音频/视频中已播范围的数量
  • start(index) - 获得某个已播范围的开始位置
  • end(index) - 获得某个已播范围的结束位置

注释:第一段已播范围的下标 index 是 0。

preload设置或返回音频/视频是否应该在页面加载后进行加载。
auto指示一旦页面加载,则开始加载音频/视频。
metadata指示当页面加载后仅加载音频/视频的元数据。
none指示页面加载后不应加载音频/视频。
readyState返回音频/视频当前的就绪状态。
  • 0 = HAVE_NOTHING - 没有关于音频/视频是否就绪的信息
  • 1 = HAVE_METADATA - 关于音频/视频就绪的元数据
  • 2 = HAVE_CURRENT_DATA - 关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒
  • 3 = HAVE_FUTURE_DATA - 当前及至少下一帧的数据是可用的
  • 4 = HAVE_ENOUGH_DATA - 可用数据足以开始播放

seekable返回表示音频/视频可寻址部分的 TimeRanges 对象。
  • length - 获得音频/视频中可寻址范围的数量
  • start(index) - 获得可寻址范围的开始位置
  • end(index) - 获得可寻址范围的结束位置

注释:第一个可寻址范围的下标 index 是 0。

seeking返回用户是否正在音频/视频中进行查找。
Booleantrue|false。如果用户正在寻址,则为 true,否则为 false。
src设置或返回音频/视频元素的当前来源。
startDate返回表示当前时间偏移的 Date 对象。
textTracks返回表示可用文本轨道的 TextTrackList 对象。
videoTracks返回表示可用视频轨道的 VideoTrackList 对象。
volume设置或返回音频/视频的音量。

HTML 音频/视频事件

当音频/视频处于加载过程中时,会依次发生以下事件:

  1. loadstart
  1. durationchange
  1. loadedmetadata
  1. loadeddata
  1. progress
  1. canplay
  1. canplaythrough

事件描述
abort当音频/视频的加载已放弃时触发。
提示: 影响多媒体数据加载的事件有:
canplay当浏览器可以开始播放音频/视频时触发。
canplaythrough当浏览器可在不因缓冲而停顿的情况下进行播放时触发。
durationchange当音频/视频的时长已更改时触发。
emptied当目前的播放列表为空时触发。
ended当目前的播放列表已结束时触发。
error当在音频/视频加载期间发生错误时触发。
loadeddata当浏览器已加载音频/视频的当前帧时触发。
loadedmetadata当浏览器已加载音频/视频的元数据时触发。
loadstart当浏览器开始查找音频/视频时触发。
pause当音频/视频已暂停时触发。
play当音频/视频已开始或不再暂停时触发。
playing当音频/视频在因缓冲而暂停或停止后已就绪时触发。
progress当浏览器正在下载音频/视频时触发。
ratechange当音频/视频的播放速度已更改时触发。
seeked当用户已移动/跳跃到音频/视频中的新位置时触发。
seeking当用户开始移动/跳跃到音频/视频中的新位置时触发。
stalled当浏览器尝试获取媒体数据,但数据不可用时触发。
suspend当浏览器刻意不获取媒体数据时触发。
timeupdate当目前的播放位置已更改时触发。
volumechange当音量已更改时触发。
waiting当视频由于需要缓冲下一帧而停止时触发。