gpt4 book ai didi

javascript - 多次单击按钮,在 JavaScript 中播放多个音频(旧声音重叠新声音)

转载 作者:可可西里 更新时间:2023-11-01 13:42:51 27 4
gpt4 key购买 nike

当我点击按钮时,音频开始。但是当我多次点击按钮时,多个音频同时播放。

HTML CODE
<button id = 'bt'> Click Me </button>

JavaScript Code

<script type="text/javascript">
url = 'song.mp3';

var btn =document.getElementById('bt');
btn.addEventListener('click', function(){
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', url);
playFunc(my, 3);
});

function PlayFunc(target, RepeatCount) {
var soundFunc = function(){
RepeatCount--;
target.currentTime = 0;
if (RepeatCount>0)
target.play();
else
target.removeEventListener('ended', soundFunc);
}
target.addEventListener('ended', soundFunc)
target.play();
}
</script>

我认为的解决方案-

  1. 在创建新的点击事件之前,销毁最后一个事件然后创建新的。
  2. 当用户点击第二个时,它会检查是否 cureentTime == 0,然后播放音频,否则会重新开始,否则什么也不会发生。

最佳答案

感谢 Gurpreet,您的解决方案成功了。

On each click I'm creating a new audio element thats why multiple audio are playing.

只是我将我的音频保存到一个变量并传递给 playFunc。

  url = 'song.mp3'
const myAudio = new Audio(url);

var btn =document.getElementById('bt');
btn.addEventListener('click', function(){
playFunc(myAudio, 3);
});

function PlayFunc(target, RepeatCount) {
var soundFunc = function(){
RepeatCount--;
target.currentTime = 0;
if (RepeatCount>0)
target.play();
else
target.removeEventListener('ended', soundFunc);
}
target.addEventListener('ended', soundFunc)
target.play();
}

关于javascript - 多次单击按钮,在 JavaScript 中播放多个音频(旧声音重叠新声音),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51803870/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com