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

问题描述

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

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

执行此操作的正确方法是什么?我不想使用WebRTC。我可以使用一些数据转换器/编码器,但是我发现的所有库都已过时/被遗弃/不安全。

解决方法

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

Android 5+几乎吞噬了Chromium MediaRecorder类提供的所有webm。如果您给MediaRecorder提供了一个来自getUserMedia()的MediaStream,并要求它提供正确的MIME类型,则会在webm中装上Opus。

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

如果将其放入文件中,请使用name.webmname.mkv对其进行命名。 Android已经能够处理它很长时间了。

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

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