使用javascript修剪音频文件(前3秒)

时间:2019-01-22 07:59:17

标签: javascript html p5.js

我有一个问题,我可以修剪通过javascript录制的音频文件。我想修剪一下它的前3秒,您能帮我吗?我使用p5.j录制了音频文件,并使用AudioContext()合并了已录制的文件和真实的karaoke文件,由于开始时声音不悦使合并错误,因此必须对其进行修剪。

1 个答案:

答案 0 :(得分:1)

您可能需要使用类似AudioContext.decodeAudioData()的方式将音频读入AudioBuffer,并将AudioBuffer插入AudioBufferSourceNode。然后,您可以使用AudioBufferSourceNode.start()的offset参数跳过前3秒,并记录生成的输出流。

示例代码:

var source = audioCtx.createBufferSource();
var dest = audioCtx.createMediaStreamDestination();
var mediaRecorder = new MediaRecorder(dest.stream);

var request = new XMLHttpRequest();
request.open('GET', 'your.ogg', true);
request.responseType = 'arraybuffer';

request.onload = function() {
  var audioData = request.response;
  audioCtx.decodeAudioData(
    audioData,
    function(buffer) {
      source.buffer = buffer;
      source.connect(dest);
      mediaRecorder.start();
      source.start(audioCtx.currentTime, 3);
      // etc...
    },
    function(e){ 
      console.log("Error with decoding audio data" + e.err);
    }
  );

}

request.send();