【问题标题】:Recording audio on the web and sending the data to Android app在网络上录制音频并将数据发送到 Android 应用程序
【发布时间】:2020-11-03 21:15:09
【问题描述】:
我想在 Chrome 网络浏览器中使用 MediaRecorder 捕获音频,并将编码的音频数据发送到 Android 应用程序进行实时播放。
我找不到任何双方都支持的音频格式。我尝试使用opus编解码器,但Chrome只支持webm容器,Android支持ogg。
这样做的正确方法是什么?我不想使用 WebRTC。我可以使用一些数据转换器/编码器,但我发现的所有库都是过时/废弃/不安全的。
【问题讨论】:
标签:
audio
android-mediaplayer
audio-streaming
web-mediarecorder
【解决方案1】:
webm 容器格式有时存储在 .mkv 文件中。
Android 5+ 几乎可以吃掉 Chromium MediaRecorder 类提供的任何 webm。如果你给 MediaRecorder 一个来自 getUserMedia() 的 MediaStream,并要求它提供正确的 MIME 类型,你会在 webm 中获得 Opus。
const mediaRec = new MediaRecorder(stream, {mimeType: 'audio/webm;codecs=opus'})
如果您将其放入文件中,请使用name.webm 或name.mkv 为其命名。 Android已经可以处理很长时间了。
mkvtoolnix program 可帮助您检查这些 webm 文件以查看其中的内容。
如果这没有解决您的问题,请发表评论。