将wav本地文件加载到WebAudio

时间:2016-11-15 18:06:55

标签: javascript webrtc web-audio

我想加载一个我加载的.wav文件:

var selectedFile = document.getElementById('input').files[0];

我想将其加载到AudioContext中,以便稍后将其用作我的WebRTC应用程序的流源。

我尝试使用文件阅读器作为ArrayBuffer阅读,以便稍后将DecodeAudioData加载到上下文中,但我不能让它工作。

提前致谢。

编辑:

我试过这样的

 var selectedFile = document.getElementById('input').files[0];

  //Creamos el lector de fichero
  var reader = new FileReader();
  //Leemos el fichero como un buffer
  reader.readAsArrayBuffer(selectedFile);
  // Esperamos a que termine de leer
  while (reader.readyState !=2){

  }
  //Guardamos el resultado de la lectura
  var buffer= reader.result;
  //Creamos el contexto que luego introducira el audio en el peer
  var context = new AudioContext();

  context.decodeAudioData(buffer, function(audio) {
   var AudioBuffer=audio;
  },

  function(e){"Error with decoding audio data" + e.err});

并且喜欢这个

 var selectedFile = document.getElementById('input').files[0];

  //Creamos el lector de fichero
  var reader = new FileReader();




       // Closure to capture the file information.
  reader.onload = function () {
       var data = reader.result;
       var buffer = new Int8Array(data);
      output.value = JSON.stringify(array, null, '  ');
     window.setTimeout(ReadFile, 1000);
      };

  reader.readAsArrayBuffer(selectedFile);


  //Guardamos el resultado de la lectura
  var buffer= reader.result;
   console.log("Guarda resultado de la lectura");
  //Creamos el contexto que luego introducira el audio en el peer
  var context = new AudioContext();
   console.log("Contexto creado");
  context.decodeAudioData(buffer, function(audio) {
     console.log("Descodificado");
   var AudioBuffer=audio;
    console.log("asignado");
  },

  function(e){"Error with decoding audio data" + e.err});

0 个答案:

没有答案