我有一个使用MediaRecorder
api创建的音频文件/ Blob:
let recorder = new MediaRecorder(this.stream)
let data = [];
recorder.ondataavailable = event => data.push(event.data);
然后当录音完成时:
let superBlob = new Blob(data, { type: "video/webm" });
如何使用这个blob创建一个 AudioBuffer
?我需要做以下两个操作之一:
- 将
Blob
对象转换为ArrayBuffer
,然后我就可以用它和AudioContext.decodeAudioData
一起使用(返回一个AudioBuffer
);或者 - 将
Blob
对象转换为Float32Array
,然后我可以使用AudioBuffer.copyToChannel()
将其复制到AudioBuffer
中。
fileReader.result
总是返回一个空的ArrayBuffer
- 你知道可能发生了什么吗?更多细节可以在我提出的这个问题中找到。 - Alistair Hughesonloadend
事件中检查了fileReader.result
吗? - Maxime Dupré