Javascript 如何使用Azure Blob服务将Blob上载到Azure Blob存储

Javascript 如何使用Azure Blob服务将Blob上载到Azure Blob存储,javascript,azure,blob,azure-blob-storage,web-mediarecorder,Javascript,Azure,Blob,Azure Blob Storage,Web Mediarecorder,我正在编写一些代码,允许用户使用麦克风录制自己的声音,然后将录制的声音上传到Azure Blob存储中 为了录制音频,我使用了与下面类似的代码 let recordedBlobs = []; this.mediaRecorder = new MediaRecorder(window.stream, { mimeType: 'audio/webm' }); this.mediaRecorder.ondataavailable = event => recordedBlobs.push(eve

我正在编写一些代码,允许用户使用麦克风录制自己的声音,然后将录制的声音上传到Azure Blob存储中

为了录制音频,我使用了与下面类似的代码

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上传的音频,这一切都可以正常工作

知道我哪里出错了吗


谢谢

createBlockBlobFromBrowserFile
需要一个
文件
对象。您需要做的是使用记录的位创建它。请尝试以下操作:

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