📅  最后修改于: 2023-12-03 15:38:18.694000             🧑  作者: Mango
在 JavaScript 中,我们可以通过 Audio 对象来控制音频。为了实现循环播放音频,我们可以使用一些技巧。下面,让我们来看看如何在 JavaScript 中循环播放音频。
onended 事件是当音频播放结束时触发的事件。我们可以使用它来实现循环播放音频。代码如下所示:
const audio = new Audio('音频文件路径');
audio.loop = true;
audio.play();
audio.addEventListener('ended', function() {
this.currentTime = 0;
this.play();
});
上面的代码中,我们首先创建了一个 Audio 对象,并设置了 loop 属性为 true,以实现循环播放。然后,我们调用了 play() 方法,开始播放音频。
接下来,我们监听了 ended 事件,当音频播放结束时,我们将当前播放的时间重置为 0,并再次调用 play() 方法,重新开始播放音频,以实现循环播放。
我们还可以使用 setTimeout() 函数来实现循环播放音频。代码如下所示:
const audio = new Audio('音频文件路径');
audio.play();
function loopAudio() {
setTimeout(function() {
audio.currentTime = 0;
audio.play();
loopAudio();
}, audio.duration * 1000);
}
audio.addEventListener('loadedmetadata', function() {
loopAudio();
});
上面的代码中,我们首先创建了一个 Audio 对象,并调用了 play() 方法,开始播放音频。
然后,我们定义了一个名为 loopAudio() 的函数,这个函数中使用了 setTimeout() 函数来实现循环播放。在 setTimeout() 函数的回调函数中,我们将当前播放的时间重置为 0,并再次调用 play() 方法,以实现循环播放。同时,我们设置了 setTimeout() 函数的时间间隔为音频的长度,以实现循环播放。
最后,我们监听了 loadedmetadata 事件,当音频文件加载完成时,我们调用了 loopAudio() 函数,开始循环播放音频。
通过以上两种方法,我们可以很方便地实现在 JavaScript 中循环播放音频的功能。我们可以根据自己的需求来选择哪种方法。