amazon-s3 - MediaRecorder 以 video/webm 格式记录而不是 audio/webm
问题描述
在 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 浏览器中都试过了。
解决方案
推荐阅读
- swift - 在 Swift 中将 dd-MM-yy 转换为日期
- ffmpeg - 使用 --arch=x86_64 编译的 ffmpeg 总是使用 x86 编译
- ruby - 在 Heroku 上使用 webpack 在 Rails 上做出反应 - 未使用 CSS。- 适用于本地部署
- excel - Excel vba 如果单元格在整个工作簿中包含文本,则删除一行
- angular - 如何在 Angular 6 Jasmine 测试中正确配置模拟身份验证服务?
- android-espresso - 在测试期间,如果我的应用程序中的操作打开了另一个应用程序(谷歌文档),是否有办法返回我的应用程序
- shell - Erlang 分布式 - 一些节点共享 1 个应用程序
- node.js - 如何在平均应用程序中应用基于角色的身份验证?
- rest - Symfony 发布请求正文参数?
- json - 如何在delphi中对TJSONArray进行排序