如何在javascript中一个声音文件接一个声音地播放

how to play a sound file after another sound in javascript

本文关键字:一个 声音 播放 文件 javascript      更新时间:2023-09-26

在另一个声音结束后,如何播放一个声音文件?如果我像那样做

first.play();
second.play();

两种声音同时播放。我想播放first.play(),当它结束时,启动second.play()

first.addEventListener('ended', function(){
    second.play();
});
first.play();

我推荐一种东西:

// if using jQuery:
var audios = $('audio');
audios.each(function(idx){
    $(this).bind('ended', function(){
        var next = audios.get(idx+1);
        if(next){
            next.get(0).play();
        }
    });
});

您也可以使用带超时的promise:

const playPromise = first.play()
playPromise.then(() => {
    setTimeout(() => {second.play()}, first.duration * 1000)
})

我使用了AudioScheduledSourceNode.onended.

我用了四个声音,并把这个代码放在一个函数中:

sound1.play();
sound1.onended = function () {
    sound2.play();
};
sound2.onended = function () {
    sound3.play();
};
sound3.onended = function () {
    sound4.play();
}

这是应用程序直播:insultinatortoy.netlify.app

单击问号按钮。

以及指向丑陋源代码的链接。jsahlsa