问题描述
我想使用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.webm
或name.mkv
对其进行命名。 Android已经能够处理它很长时间了。
mkvtoolnix program帮助您检查这些webm文件以查看其中的内容。
如果这不能解决您的问题,请发表评论。