【发布时间】:2019-01-22 16:50:57
【问题描述】:
我有一个问题,我可以修剪通过 javascript 录制的音频文件。我想修剪它的前 3 秒,你能帮我吗?我使用 p5.j 录制了音频文件,并将录制的文件和一个真实的卡拉 OK 文件与 AudioContext() 合并,我必须修剪它,因为开始时声音令人不快,导致合并错误。
【问题讨论】:
标签: javascript html p5.js
我有一个问题,我可以修剪通过 javascript 录制的音频文件。我想修剪它的前 3 秒,你能帮我吗?我使用 p5.j 录制了音频文件,并将录制的文件和一个真实的卡拉 OK 文件与 AudioContext() 合并,我必须修剪它,因为开始时声音令人不快,导致合并错误。
【问题讨论】:
标签: javascript html p5.js
您可能需要使用类似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();
【讨论】: