【发布时间】:2020-04-21 14:51:32
【问题描述】:
我按照this article(第6步的代码)制作了一个录音机,如下所示。在制作audioBlob 之后,我调用了一个自定义函数来上传blob。此功能适用于其他文件类型。
我将{ type: 'audio/wav' } 传递给Blob 构造函数。生成的文件确实假装是一个波形文件,并且可以在浏览器中正常播放,但在 iOS 上则不行。我检查了http://checkfiletype.com/,发现该文件实际上是 WebM:
如何确保文件实际上是.wav 文件?
从那篇文章中编辑的代码:
navigator.mediaDevices.getUserMedia({ audio: true })
.then(stream => {
const mediaRecorder = new MediaRecorder(stream);
mediaRecorder.start();
const audioChunks = [];
mediaRecorder.addEventListener("dataavailable", event => {
audioChunks.push(event.data);
});
mediaRecorder.addEventListener("stop", () => {
const audioBlob = new Blob(audioChunks, { type: 'audio/wav' });
// Custom upload function
uploadFile(audioBlob);
});
setTimeout(() => {
mediaRecorder.stop();
}, 3000);
});
【问题讨论】:
标签: javascript blob