Trim 使用 javascript 的音频文件(前 3 秒)
Trim an audio file using javascript (first 3 seconds)
我有一个问题,我可以 trim 通过 javascript 录制的音频文件吗?我想 trim 的前 3 秒 你能帮帮我吗?我使用 p5.j 录制了音频文件,并使用 AudioContext() 合并了录制的文件和一个真正的卡拉 OK 文件,我不得不 trim 它因为开始时令人不快的声音导致合并错误。
您可能需要使用 AudioContext.decodeAudioData()
, plug the AudioBuffer
into a AudioBufferSourceNode
. Then you can skip the first 3 seconds using the offset parameter of AudioBufferSourceNode.start()
之类的方法将音频读入 AudioBuffer
并记录生成的输出流。
示例代码:
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();
我有一个问题,我可以 trim 通过 javascript 录制的音频文件吗?我想 trim 的前 3 秒 你能帮帮我吗?我使用 p5.j 录制了音频文件,并使用 AudioContext() 合并了录制的文件和一个真正的卡拉 OK 文件,我不得不 trim 它因为开始时令人不快的声音导致合并错误。
您可能需要使用 AudioContext.decodeAudioData()
, plug the AudioBuffer
into a AudioBufferSourceNode
. Then you can skip the first 3 seconds using the offset parameter of AudioBufferSourceNode.start()
之类的方法将音频读入 AudioBuffer
并记录生成的输出流。
示例代码:
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();