【问题标题】: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.webmname.mkv 为其命名。 Android已经可以处理很长时间了。

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

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

    【讨论】:

    • 哦,我不知道我可以互换使用 mkv 和 webm。我确信这些容器是不同的。我的假设是基于:developer.android.com/guide/topics/media/…,其中提到作品可以用 mkv 或 ogg 包装。在阅读了本主题的更多内容后,我发现:“所有 WebM 文件都是 MKV 文件,但并非所有 MKV 文件都与 WebM 一致。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    • 2014-02-09
    • 1970-01-01
    相关资源
    最近更新 更多