You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在HTML与JavaScript中实现音频播放结束时自动切回播放按钮

代码修改方案

原有代码存在的问题

  • 变量命名非法:JavaScript 变量名不能包含-字符,play-button、pause-button这类命名会直接报错
  • 存在大量未定义变量:play、pause、x、myAudio均没有声明定义,运行时会触发异常
  • 功能逻辑重复:多个按钮切换函数功能冗余,没有可复用性
  • 缺少音频播放结束的事件监听逻辑

完整修改后代码

CSS 代码

.play-button {
    display: none
}

.play-button.show {
    display: block;
}
.pause-button {
    display: none;
}

.pause-button.show {
    display: block
}

HTML 代码

<audio id="audio" src="name.mp3">
    Your browser does not support the audio element.
</audio>
<button class="play-button show" id="play-button">Play</button>
<button class="pause-button" id="pause-button">Pause</button>

这里去掉了冗余的行内onclick事件,统一在JS中绑定事件,后续维护更方便

JavaScript 代码

// 修正变量命名,使用合法的驼峰命名规则
const playBtn = document.getElementById('play-button')
const pauseBtn = document.getElementById('pause-button')
const audio = document.getElementById("audio");

// 封装播放逻辑
function playAudio() {
    audio.play()
    playBtn.classList.remove('show')
    pauseBtn.classList.add('show')
}

// 封装暂停/重置逻辑
function pauseAudio() {
    audio.pause()
    pauseBtn.classList.remove('show')
    playBtn.classList.add('show')
}

// 绑定按钮点击事件
playBtn.addEventListener('click', playAudio)
pauseBtn.addEventListener('click', pauseAudio)

// 新增音频播放结束事件监听,播放完成自动切回播放按钮
audio.addEventListener('ended', pauseAudio)

功能验证

  • 点击播放按钮会自动切换为暂停按钮,同时播放音频
  • 点击暂停按钮会自动切换为播放按钮,同时暂停音频
  • 音频播放完成后会自动触发ended事件,执行暂停逻辑,按钮自动切回播放状态,用户可直接再次点击播放

内容的提问来源于stack exchange,提问作者Test

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 11:39:01