在网络上录制音频并将数据发送到 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.webm
或 name.mkv
为其命名。 Android 已经能应付很久了
mkvtoolnix program 帮助您检查这些 webm 文件以查看其中的内容。
如果这没有解决您的问题,请发表评论。
我想使用 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.webm
或 name.mkv
为其命名。 Android 已经能应付很久了
mkvtoolnix program 帮助您检查这些 webm 文件以查看其中的内容。
如果这没有解决您的问题,请发表评论。