Javascript 两个音频文件逐个播放
通过单击“播放”按钮,两个音频文件应该一个接一个地开始播放,但在我的情况下,它们同时开始播放。问题是如何让他们一个接一个地播放,音频1然后音频2Javascript 两个音频文件逐个播放,javascript,audio,Javascript,Audio,通过单击“播放”按钮,两个音频文件应该一个接一个地开始播放,但在我的情况下,它们同时开始播放。问题是如何让他们一个接一个地播放,音频1然后音频2 let audio1 = new Audio('audio_1.mp3'); audio1.play(); let audio2 = new Audio('audio_2.mp3'); audio2.play(); 下面是一个使用javascriptoneded的简单解决方案 let button = documen
let audio1 = new Audio('audio_1.mp3');
audio1.play();
let audio2 = new Audio('audio_2.mp3');
audio2.play();
下面是一个使用javascript
oneded
的简单解决方案
let button = document.querySelector('button');
let audio = new Audio('audio_1.mp3');
function playAudio(){
audio.play();
audio.onended = function() {
audio.src='audio_2.mp3'
audio.play();
};
}
button.addEventListener(
'click',
playAudio
)
使用承诺
function play(url) {
return new Promise(function(resolve, reject) { // return a promise
var audio = new Audio(); // create audio wo/ src
audio.preload = "auto"; // intend to play through
audio.autoplay = true; // autoplay when loaded
audio.onerror = reject; // on error, reject
audio.onended = resolve; // when done, resolve
audio.src = path + url + suffix; // just for example
});
}
参考stackoverflow答案
每当您要等待某个操作,并且要在上一个操作完成后执行该操作时,请使用您可以向其添加事件侦听器:
let audio1=新音频('Audio_1.mp3');
让audio2=新音频(“Audio_2.mp3”);
audio1.addEventListener('ended'=>audio2.play());
音频1.播放()代码>仅播放第一个文件的第二个文件onended
?检查此问题中的答案,可能会有所帮助:嗨@Valter,谢谢你的回答,但它不起作用。很抱歉@JohnPix,只需将事件名称从“onended”改为“end”,就可以了。