3
У меня есть аудио файл/блоб, который был создан с помощью MediaRecorder
API:Как создать AudioBuffer из Blob?
let recorder = new MediaRecorder(this.stream)
let data = [];
recorder.ondataavailable = event => data.push(event.data);
, а затем позже, когда запись закончена:
let superBlob = new Blob(data, { type: "video/webm" });
Как я могу использовать эту каплю, чтобы создать AudioBuffer
? Мне нужно либо:
- Преобразовать
Blob
объект вArrayBuffer
, который я мог бы использовать сAudioContext.decodeAudioData
(возвращаетAudioBuffer
) или - Преобразовать
Blob
объект вFloat32Array
, где я мог бы скопировать его вAudioBuffer
сAudioBuffer.copyToChannel()
Любые советы о том, как достичь этого, оцениваются. Ура!
Я использую это в своей реализации, но 'fileReader.result' всегда возвращает пустой' ArrayBuffer' - знаете ли вы, что может произойти? Более подробную информацию можно найти в [этом вопросе, который я задал] (https://stackoverflow.com/questions/43572151/web-audio-blob-to-arraybuffer-converstion-results-in-empty-arraybuffer-array) –
Are вы уверены, что вы проверяете 'fileReader.result' в событии' onloadend'? – maximedupre
Да, мне удалось заставить его работать, это было тривиальной ошибкой на моем конце, поэтому сожалею об этом. Большое спасибо за публикацию этого ответа, хотя это было очень полезно! –