dplayer.js 是一个基于 HTML5 Video 元素的现代视频播放器,它提供了丰富的事件接口用于监控和响应用户交互及视频播放状态的变化。以下是你提到的这些事件的详细解释:

  1. abort
    当视频加载被异常终止时触发(不是播放结束的正常终止),可能是由于用户主动取消加载或网络错误导致。

  2. canplay
    当浏览器可以开始播放视频(已加载足够数据),但可能还需要缓冲时触发。此时视频可以播放,但不确定能否流畅播放至结束。

  3. canplaythrough
    当浏览器判断视频可以流畅播放至结束(无需中途缓冲)时触发,通常表示已加载足够数据。

  4. durationchange
    当视频的总时长(duration)发生变化时触发,常见于元数据加载完成或视频源改变时。

  5. emptied
    当视频元素被清空(如调用 load() 方法重置)时触发,此时所有视频数据被移除。

  6. ended
    当视频播放完成(到达结尾)时触发,适合用于播放结束后的逻辑(如显示重播按钮)。

  7. error
    当视频加载或播放过程中发生错误时触发,可通过事件对象获取错误信息(如网络错误、格式不支持等)。

  8. loadeddata
    当视频的第一帧数据已加载完成并准备好渲染时触发。

  9. loadedmetadata
    当视频的元数据(如时长、尺寸等)加载完成时触发,此时可以获取到视频的基本信息。

  10. loadstart
    当浏览器开始加载视频数据时触发,是加载过程的第一个事件。

  11. mozaudioavailable
    特定于 Mozilla 浏览器的事件,当音频数据可用于处理时触发(较少见,主要用于音频处理场景)。

  12. pause
    当视频从播放状态切换到暂停状态时触发(如用户点击暂停按钮)。

  13. play
    当视频从暂停状态切换到播放状态时触发(如用户点击播放按钮)。

  14. playing
    当视频实际开始播放时触发(包括暂停后恢复播放或缓冲后继续播放)。

  15. progress
    浏览器在加载视频数据过程中周期性触发,可通过事件获取已加载的字节范围,用于显示加载进度条。

  16. ratechange
    当视频播放速率(如倍速播放)改变时触发,可用于同步更新 UI 上的速率显示。

  17. seeked
    当视频完成跳转(seek)操作后触发,即用户拖动进度条后定位到新位置并准备播放。

  18. seeking
    当用户开始拖动进度条进行跳转操作时触发(此时播放会暂停,直到 seek 完成)。

  19. stalled
    当浏览器尝试加载数据但未成功(如网络中断)时触发,通常表示视频可能即将缓冲。

  20. suspend
    当浏览器有意暂停加载视频数据时触发(如暂时不需要更多数据,或用户暂停播放)。

  21. timeupdate
    视频播放位置(currentTime)更新时周期性触发(通常每秒数次),适合用于更新进度条位置。

  22. volumechange
    当音量或静音状态改变时触发,可用于同步更新音量控制 UI。

  23. waiting
    当视频需要暂停播放以缓冲更多数据时触发,通常用于显示加载提示。

 

这些事件覆盖了视频从加载到播放的全生命周期,通过监听它们可以实现自定义的播放控制、UI 反馈和交互逻辑。在 dplayer.js 中,通常通过 dp.on('eventName', callback) 方式来绑定事件处理函数