我想使用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文件以查看其中的内容。
如果仍然无法解决您的问题,请发表评论。
关于audio - 在网络上录制音频并将数据发送到Android应用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64670805/