同时播放多个波

Play multiple wave at the same time

我有两个文件mywave1.wav1mywave2.wav想同时播放两个文件

目前我尽量把每一波都分开玩,但不保证同时开始。

  var context = new AudioContext();
  var buffer = null;
  var source = context.createBufferSource();
  var request = new XMLHttpRequest();
  var source2 = context.createBufferSource();
  var request2 = new XMLHttpRequest();

  request.open('GET', 'http://localhost:8000/mywave1.wav' , true);
  request.responseType = 'arraybuffer';
  request.send();

  request.onload = function () {
    var res = request.response;
    context.decodeAudioData(res, function (buf) {
      source.buffer = buf;
    });
  };

  source.connect(context.destination);
  source.start(0);
  
  request2.open('GET', 'http://localhost:8000/mywave2.wav', true);
  request2.responseType = 'arraybuffer';
  request2.send();

  request2.onload = function () {
    var res = request.response;
    context.decodeAudioData(res, function (buf) {
      source2.buffer = buf;
    });
  };

  source2.connect(context.destination);
  source2.start(0);

Web Audio 同时播放多个音频文件的最佳做法是什么 API??

我找到了这个项目。它满足了我的要求。

https://github.com/naomiaro/waveform-playlist