gpt4 book ai didi

blob - 如何从 Blob 创建 AudioBuffer?

转载 作者:行者123 更新时间:2023-12-02 00:30:43 33 4
gpt4 key购买 nike

我有一个使用 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

任何有关如何实现这一目标的提示都将受到赞赏。干杯!

最佳答案

要将 Blob 对象转换为 ArrayBuffer,请使用 FileReader.readAsArrayBuffer

let fileReader = new FileReader();
let arrayBuffer;

fileReader.onloadend = () => {
arrayBuffer = fileReader.result;
}

fileReader.readAsArrayBuffer(superBlob);

关于blob - 如何从 Blob 创建 AudioBuffer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40363335/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com