如何修改现有前端代码实现Audio停止而非暂停功能
一、pause(暂停)和stop(停止)的功能区别
- pause(暂停):仅暂停音频播放,不会清空当前播放进度,音频的
currentTime属性会保留暂停时的数值,再次触发播放时会从暂停位置继续,音频资源也不会被释放。 - stop(停止):在暂停播放的基础上,会将音频的
currentTime属性重置为0(即播放起始位置),再次触发播放时会从头开始加载播放。
二、现有代码修改方案
你只需要修改JS代码中的2处逻辑即可实现stop效果:
1. 替换原有暂停逻辑为停止逻辑
将原有的pauseAudio函数替换为支持重置进度的stopAudio函数:
// 原有代码里的pauseAudio函数替换为以下内容 function stopAudio(player) { player.pause(); // 新增重置播放进度到起始位置的逻辑 player.currentTime = 0; }
2. 修改音频管理逻辑的调用
将manageAudio函数中原来调用pauseAudio的部分,改为调用新的stopAudio函数:
function manageAudio(player, opts) { if (opts.playing) { // 把原来的pauseAudio(player)替换为下面这行 stopAudio(player); } else { playAudio(player, opts.src); } }
修改完成后,点击正在播放的按钮触发的就是停止逻辑,再次点击播放就会从头开始播放音频。
内容的提问来源于stack exchange,提问作者user16776772
相关产品推荐
相关产品推荐

