【发布时间】:2020-07-26 18:58:31
【问题描述】:
我正在使用 MediaRecorder 并使用 Navigator.getUserMedia 从用户的麦克风录制音频。
getUserMedia({ audio: true })
.then(stream => {
this.stream = stream;
const mimeType = 'audio/mp3';
this.mediaRecorder = new MediaRecorder(stream);
this.mediaRecorder.start();
const audioChunks = [];
this.mediaRecorder.addEventListener('dataavailable', event => {
audioChunks.push(event.data);
});
this.mediaRecorder.addEventListener('stop', () => {
const audioBlob = new Blob(audioChunks, {
type: mimeType});
});
}).catch(error => { });
借助 AudioContext 的 decodeAudioData 方法,我已经在 ReactJS 中将此 blob 转换为 WAV 文件。我也在这个过程中使用了文件阅读器。但是WAV文件的大小太大了。因为我的用例是记录可以持续 1-2 小时的会议。一小时的大小约为 350MB。 所以我宁愿需要将 blob 转换为 MP3,因为它的大小比 WAV 小。 请问有谁知道任何库可以在 ReactJS 中将 blob 转换为 MP3?
【问题讨论】:
-
不能保留原来的 opus 或 vorbis 格式吗?他们的压缩应该足够好。否则,没有内置方法可以做到这一点,您必须依赖库或服务器端应用程序才能做到这一点,而且我们在这里不做软件推荐。
-
图书馆的任何建议。由于我将该音频文件从客户端上传到 IBM 云存储,因此我只需要在客户端转换为 MP3。有什么帮助吗?
-
我们不做图书馆推荐。但是有很多可以直接将您的 MediaStream 录制到 mp3,只需在您喜欢的搜索引擎中搜索“录制音频到 mp3 javascript”
标签: javascript reactjs