Как загрузить BLOB-объект в хранилище BLOB-объектов Azure с помощью службы BLOB-объектов Azure - PullRequest
1 голос
/ 11 июня 2019

Я пишу некоторый код, который позволяет пользователю записать себя с помощью своего микрофона, а затем загрузить запись в хранилище BLOB-объектов Azure.

Для записи звука я использую код, подобный приведенному ниже

let recordedBlobs = [];
this.mediaRecorder = new MediaRecorder(window.stream, { mimeType: 'audio/webm' });
this.mediaRecorder.ondataavailable = event => recordedBlobs.push(event.data);
this.mediaRecorder.start(10);

Моя функция остановки затем создает BLOB-объект и затем пытается загрузить его в Azure

this.mediaRecorder.stop();
const blob = new Blob(recordedBlobs);
const blobService = azure.createBlobServiceWithSas(myFileUri, mysasToken);
const speedSummary = blobService.createBlockBlobFromBrowserFile(container, path, blob, { blockSize });

Все это прекрасно работает на другой странице, где пользователь загружает файл, но не для аудиозагружено с помощью MediaRecorder.

Есть идеи, где я ошибаюсь?

Спасибо

1 Ответ

1 голос
/ 11 июня 2019

createBlockBlobFromBrowserFile ожидает объект File. Что вам нужно сделать, это создать это, используя записанные биты. Попробуйте что-то вроде следующего:

const blob = new Blob(recordedBlobs, {type: 'audio/webm'});
const file = new File([blob], "mytest.webm", {type: 'audio/webm'});
const blobService = azure.createBlobServiceWithSas(myFileUri, mysasToken);
const speedSummary = blobService.createBlockBlobFromBrowserFile(container, path, file, { blockSize });         

Я попробовал код выше и смог загрузить BLOB-объект.

...