06-video事件
video的事件,都需要用监听的方式进行处理
步骤均为是document.querySelector("video").addEventLisener(事件名称,回调函数,是否冒泡)
loadstart开始
媒体开始加载了
durationchange
总时长的变换监听
注意: 视频的总时长一定是加载之后才能拿到总时长,获取总时长, document,querySelector("video").duration
有些拿不到总时长,比如虚拟地址blob:http
,同时还跟视频的格式有关系
loadedmetadata元数据
视频的元数据加载完毕了,目前的内容里面有全部的需要的数据信息,这个事件一定是在获取完毕总时长之后发生,这是规定
loadeddata第一帧
视频的第一帧已经加载完毕了, 但是没有足够的数据来播放下一帧,会触发loadeddata
progress下载与buffered
监听是否正在下载数据 progress
,有关媒体当前已下载总计的信息可以在元素的buffered
属性中获取到。
canplay播放
监听是否可以播放了, 在媒体数据已经有足够的数据(至少播放数帧)可供播放时触发 ,仅仅是能到达播放水平,但是具体卡不卡不知道
canplaythrough流畅播放
监听是否有流畅的数据能够播放, 在媒体的readyState
变为CAN_PLAY_THROUGH
时触发,表明媒体可以在保持当前的下载速度的情况下不被中断地播放完毕。注意:手动设置currentTime会使得firefox触发一次canplaythrough事件,其他浏览器或许不会如此。在最后一定还会有N次的progress,这是因为浏览器的预加载功能造成的
play播放
监听播放事件
pause停止
监听停止事件
seeking点击
监听点击(处于这个点击动作)进度条的某个时间点的事件
seeked
监听点击(主语这个点击动作之后)进度条的某个时间点的事件 seeked
,
注意: 在此 监听到seeked
之后,会触发后面的canpaly
,canplaythrough
注意: 点击了某个时间点之后, 触发的事件的顺序依次是seeking
, seeked
, canplay
, canplaythroungh
waiting等待
监听视频等待时间, 只有等下一帧需要进行缓冲了,就会触发等待的事件, ,
注意:点击了时间点进度条之后,一定是先触发waiting
事件之后,才会依次触发seeking
, seeked
, canplay
, canplaythroungh
playing播放中
监听播放中的事件
注意: 当视频进行解码之后,首先是canplay
,然后才是playing
timeupdate进度条
监听进度条事件
currentTime
元素的currentTime
属性表示的时间已经改变的时候,就会触发这个事件
volumechange音量
监听音量的事件volumechange
, 这个可以是属性volume
的改变也可以是muted
静音的改变
ended结束
监听播放结束的时候触发的事件
error错误
当播放错误的事件监听这个事件error