Javascript 两个音频文件逐个播放

Javascript 两个音频文件逐个播放,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

通过单击“播放”按钮,两个音频文件应该一个接一个地开始播放,但在我的情况下,它们同时开始播放。问题是如何让他们一个接一个地播放,音频1然后音频2

   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”,就可以了。