在网络上录制音频并将数据发送到 Android 应用

Recording audio on the web and sending the data to Android app

我想使用 MediaRecorder 在 Chrome 网络浏览器中捕获音频,并将编码后的音频数据发送到 Android 应用程序进行实时播放。

我找不到任何双方都支持的音频格式。我尝试使用 opus 编解码器,但 Chrome 仅支持 webm 容器,而 Android 支持 ogg.

这样做的正确方法是什么?我不想使用 WebRTC。我可以使用一些数据 converters/encoders,但我找到的所有库都是 obsolete/abandoned/insecure.

webm 容器格式有时存储在 .mkv 文件中。

Android 5+ 几乎吃掉了 Chromium MediaRecorder class 提供的任何 webm。如果您给 MediaRecorder 一个来自 getUserMedia() 的 MediaStream,并要求它提供正确的 MIME 类型,您将在 webm 中得到 Opus。

const mediaRec = new MediaRecorder(stream, {mimeType: 'audio/webm;codecs=opus'})

如果将其放入文件中,请使用 name.webmname.mkv 为其命名。 Android 已经能应付很久了

mkvtoolnix program 帮助您检查这些 webm 文件以查看其中的内容。

如果这没有解决您的问题,请发表评论。