如果加载成功,无论是使用src属性还是使用源元素,那么随着数据的下载,会触发进度事件。当加载足够的数据来确定视频的尺寸和持续时间时,会触发加载的元数据事件。当足够的数据被加载到渲染帧时,loadeddata事件被触发。当数据已被加载以便能够播放一点点的视频时,会发射一个canplay事件。当浏览器确定它可以在不停止下载更多数据的情况下播放整个视频时,就会触发canplaythrough事件;这也是当视频开始播放时,如果它具有自动播放属性。
注意:Opera 10.50不会尝试确定它何时有足够的数据可以播放,而只是同时触发canplay和canplay。这可能会在未来的版本中修复。
如果浏览器为了节省带宽而决定停止下载数据,则会触发暂停事件。如果服务器由于某种原因停止提供数据(不关闭连接),则三秒钟后浏览器会触发停滞事件。如果浏览器的播放速度比服务器正在提供数据的速度快,或者在查找时导致浏览器等待下载数据,则会引发等待事件。
注意:Opera 10.50不会暂停下载,也不会触发停滞事件。
如果您希望您的播放按钮禁用,直到视频可以播放,您可以在canplay事件启用:
video.oncanplay = function(e) {
playpause.disabled = false;
}