Потоковое WebAudio с выборкой: DOMException: Невозможно декодировать аудиоданные

Я пытаюсь воспроизвести бесконечный поток, исходящий из API выборки, используя Chrome 51. (аудиопоток с веб-камеры, например, Microsoft PCM, 16 бит, моно, 11025 Гц)

Код работает почти нормально с mp3-файлами, за исключением некоторых сбоев, но он не работает вообще с wav-файлами по какой-то причине, я получаю «DOMException: Невозможно декодировать аудиоданные»

Код адаптирован из этого ответаПрерывистое / неразборчивое воспроизведение с фрагментированным звуком через Web Audio API

Любая идея, если это возможно, чтобы он работал с потоками WAV?

function play(url) {
  var context = new (window.AudioContext || window.webkitAudioContext)();
  var audioStack = [];
  var nextTime = 0;

  fetch(url).then(function(response) {
    var reader = response.body.getReader();
    function read() {
      return reader.read().then(({ value, done })=> {
        context.decodeAudioData(value.buffer, function(buffer) {
          audioStack.push(buffer);
          if (audioStack.length) {
              scheduleBuffers();
          }
        }, function(err) {
          console.log("err(decodeAudioData): "+err);
        });
        if (done) {
          console.log('done');
          return;
        }
        read()
      });
    }
    read();
  })

  function scheduleBuffers() {
      while ( audioStack.length) {
          var buffer    = audioStack.shift();
          var source    = context.createBufferSource();
          source.buffer = buffer;
          source.connect(context.destination);
          if (nextTime == 0)
              nextTime = context.currentTime + 0.01;  /// add 50ms latency to work well across systems - tune this if you like
          source.start(nextTime);
          nextTime += source.buffer.duration; // Make the next buffer wait the length of the last buffer before being played
      };
  }
}

Просто используйте play ('/ path / to / mp3'), чтобы проверить код. (на сервере должен быть включен CORS или он находится в том же домене, с которого запускается скрипт запуска)

Ответы на вопрос(2)

Ваш ответ на вопрос