Blob から AudioBuffer を作成するにはどうすればいいですか? 質問する

Blob から AudioBuffer を作成するにはどうすればいいですか? 質問する

APIを使用して作成されたオーディオ ファイル/BLOB がありますMediaRecorder

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.decodeAudioDataAudioBuffer
  • Blobオブジェクトを に変換し、それをFloat32Arrayにコピーします。AudioBufferAudioBuffer.copyToChannel()

それを達成するためのヒントがあれば、ぜひ教えてください。乾杯!

ベストアンサー1

Blobオブジェクトを に変換するにはArrayBuffer、 を使用しますFileReader.readAsArrayBuffer

let fileReader = new FileReader();
let arrayBuffer;

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

fileReader.readAsArrayBuffer(superBlob);

おすすめ記事