首页 文章

使用Cordova和JavaScript从Android麦克风获取音频数据(不使用getUserMedia)

提问于
浏览
1

我需要使用JavaScript从动态设备的麦克风中获取频率/音高数据 .

我已经使用getUserMedia和Web Audio API为桌面/笔记本电脑浏览器做了这个,但绝大多数Android设备都不支持这些 .

我尝试过使用cordova-plugin-media-capture但是这会打开一个用户可以保存或丢弃的录音机,保存后你可以使用cordova-plugin-file来获取如下所示的数据:https://stackoverflow.com/a/32097634/5674976但我需要它不是打开录音机,而是可能只是一个录音按钮,一旦录音就立即提供音频数据(这样它就可以实时检测频率数据) .

我已经看到了录音功能,例如WhatsApp,Facebook Messenger等等作为最后的手段 - 因为我不了解Java - 是否有可能使用Java为Cordova创建一个插件?

编辑:我也看过cordova-plugin-media https://github.com/apache/cordova-plugin-media,它似乎提供幅度数据和当前位置数据 . 我想我可以通过观察一段时间内的振幅来判断频率,还是我天真?

1 回答

  • 1

    我设法录制音频并分析频率,无需使用适用于Android的getUserMedia或Web Audio API .

    首先,我安装了cordova-plugin-audioinput插件,该插件输出音频样本流(来自麦克风),具有自定义配置,如缓冲区大小和采样率 . 然后,您可以使用此数据来检测特定频率 .

相关问题