Javascript 如何使一个音频文件等待另一个音频文件的结束,以便将它们一起启动

Javascript 如何使一个音频文件等待另一个音频文件的结束,以便将它们一起启动,javascript,jquery,html5-audio,Javascript,Jquery,Html5 Audio,我正在尝试建立一个基本的采样器。我有4个不同的音频文件(1个吉他,1个鼓,1个钢琴和1个低音)。声音套件按钮按我想要的方式编程,但我无法使环路按我想要的方式工作 我想做的是: 如果用户单击按钮,则会启动示例 如果用户再次单击同一按钮,则会停止样本 如果用户单击另一个示例,它将等待第一个示例的结束,然后一起开始 目前,我设法完成了第一步和第二步,但我不知道如何完成第三步 我试图使用事件监听器来知道循环何时结束,但我从未成功地使其工作 所以我的问题是:有没有一个简单的方法来完成第三步? 如果你能

我正在尝试建立一个基本的采样器。我有4个不同的音频文件(1个吉他,1个鼓,1个钢琴和1个低音)。声音套件按钮按我想要的方式编程,但我无法使环路按我想要的方式工作

我想做的是:

  • 如果用户单击按钮,则会启动示例
  • 如果用户再次单击同一按钮,则会停止样本
  • 如果用户单击另一个示例,它将等待第一个示例的结束,然后一起开始
目前,我设法完成了第一步和第二步,但我不知道如何完成第三步

我试图使用事件监听器来知道循环何时结束,但我从未成功地使其工作

所以我的问题是:有没有一个简单的方法来完成第三步? 如果你能在解释的时候给我多一点细节,那就太好了。谢谢

到目前为止,我的js是什么样子的:

$(document).ready(function() {
  var basse = {
    padOne:  new Audio('basse2.mp3'),
  };

  var drum = {
    padOne: new Audio('m1_drum1_85.mp3'),
  };

  var guitar = {
    padOne: new Audio('m1_guitare1_85.mp3'),
  };

  var piano = {
    padOne: new Audio('m1_piano_85.mp3'),
  };

  $('.pad-1').mousedown(function() {
    if (basse.padOne.paused) {
      basse.padOne.load()
      basse.padOne.loop = true;
      basse.padOne.play();
    } else {
      basse.padOne.pause();
      basse.padOne.currentTime = 0
    }
  });

  $('.pad-5').mousedown(function() {
    if (drum.padOne.paused) {
      drum.padOne.load()
      drum.padOne.loop = true;
      drum.padOne.play();
    } else {
      drum.padOne.pause();
      drum.padOne.currentTime = 0
    }
  });

  $('.pad-9').mousedown(function() {
    if (guitar.padOne.paused) {
      guitar.padOne.load()
      guitar.padOne.loop = true ;
      guitar.padOne.play();
    } else {
      guitar.padOne.pause();
      guitar.padOne.currentTime = 0
    }
  });

  $('.pad-13').mousedown(function() {
    if (piano.padOne.paused) {
      piano.padOne.load()
      piano.padOne.loop = true ;
      guitar.padOne.play();
    } else {
      piano.padOne.pause();
      piano.padOne.currentTime = 0
    }
  });
});