媒体录音机 跨浏览器以 WAV 格式保存

Media Recorder Save in WAV format across browsers

Media Recorder Was working fantastically for me to do a fairly complicated process along with the rest of Web Audio API documented on Mozilla. However. It is useless to me unless I can get it to record audio consistently in wave format. I have attempted to set the MimeType on many browsers which appears to be deprecated without the knowledge of Mozilla, any attempt to set the mimeType even using the example from the docs here 在任何代码中都不起作用。

如果有人有办法使用前端处理(不使用服务器中介)将此文件另存为 wave,我将不胜感激。

可能值得注意的是,只要文件编码为 wav,ogg 格式以前就对我有效。 This example with source code 几天前在我的浏览器 (Brave/Chrome) 上工作,之后它开始保存为 webm 格式。

另外,值得注意的是,我不打算在这个项目中使用 MediaRecorder API,只要我能够在录制后使用 WebAudioAPI 获取通道数据进行处理。

我构建了一个包,它应该完全符合您的要求。它被称为 extendable-media-recorder。它提供与原生 MediaRecorder 相同的界面,但允许使用自定义编解码器“扩展”它。示例编解码器是 wav.

以下是如何使用它来录制来自 getUserMedia() 的流:

import { MediaRecorder, register } from 'extendable-media-recorder';
import { connect } from 'extendable-media-recorder-wav-encoder';

await register(await connect());

const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
const mediaRecoder = new MediaRecorder(stream, { mimeType: 'audio/wav' });

它将使用内置的MediaRecorder来记录Chrome中的pcm数据。在 Firefox 和 Safari 中,Web Audio API 用于获取 pcm 数据。检索到数据后,它会发送给工作人员,工作人员将其解码为 wav。