如何实现HTML5音频播放结束触发回调处理?

2026-05-07 07:530阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计899个文字,预计阅读时间需要4分钟。

如何实现HTML5音频播放结束触发回调处理?

在音频播放时,如果仅播放到自然播放完(即播放指针走到末尾),则不会触发触觉反馈,不是由于暂停、出错或被中断。很多人误以为播放停止了就触发了触觉反馈,实际上,触觉反馈的回调并不会直接执行——实际上是手动调用了`pause()`,或者因为音频加载失败根本没开始播放。

  • ended 不会因网络中断、error 事件、abort 或用户点击暂停而触发
  • 如果音频设置了 loop="true"ended 永远不会触发(循环会重置播放位置)
  • 动态设置 src 后必须显式调用 load(),否则旧的监听可能失效,新音频播完也不触发 ended

audio 绑定 ended 回调的正确写法

别在 HTML 里用 onended="handleEnd()",容易和后续 JS 逻辑冲突;也别用 addEventListener('ended', ...) 后不存引用,导致无法移除。最稳妥的是在元素就绪后绑定,并确保监听器在生命周期内有效。

阅读全文

本文共计899个文字,预计阅读时间需要4分钟。

如何实现HTML5音频播放结束触发回调处理?

在音频播放时,如果仅播放到自然播放完(即播放指针走到末尾),则不会触发触觉反馈,不是由于暂停、出错或被中断。很多人误以为播放停止了就触发了触觉反馈,实际上,触觉反馈的回调并不会直接执行——实际上是手动调用了`pause()`,或者因为音频加载失败根本没开始播放。

  • ended 不会因网络中断、error 事件、abort 或用户点击暂停而触发
  • 如果音频设置了 loop="true"ended 永远不会触发(循环会重置播放位置)
  • 动态设置 src 后必须显式调用 load(),否则旧的监听可能失效,新音频播完也不触发 ended

audio 绑定 ended 回调的正确写法

别在 HTML 里用 onended="handleEnd()",容易和后续 JS 逻辑冲突;也别用 addEventListener('ended', ...) 后不存引用,导致无法移除。最稳妥的是在元素就绪后绑定,并确保监听器在生命周期内有效。

阅读全文