在ReactJS中,我正在使用MediaRecorder通过以下代码记录来自麦克风的音频:
getUserMedia({ audio: true })
.then(stream => {
this.stream = stream;
const mime = ['audio/wav', 'audio/mpeg', 'audio/webm', 'audio/ogg']
.filter(MediaRecorder.isTypeSupported)[0];
this.mediaRecorder = new MediaRecorder(stream, {
mimeType: mime
});
console.log('MIME: ', mime);
this.mediaRecorder.start();
const audioChunks = [];
this.mediaRecorder.addEventListener('dataavailable', event => {
audioChunks.push(event.data);
});
this.mediaRecorder.addEventListener('stop', () => {
const audioBlob = new Blob(audioChunks, {
type: mime});
});
}).catch(error => { });
在我的控制台中,我得到MIME: audio/webm
。我将这个Blob存储到S3存储桶中,但是当我下载此文件时,文件的类型将更改为WebM video (video/webm)
。
任何想法,即使给出正确的mime类型后,为何仍将其视为视频文件。我在Chrome和Firebox浏览器中都试过了。