Javascript 如何使用Azure Blob服务将Blob上载到Azure 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
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