使用Cordova和JavaScript(无需getUserMedia)从android麦克风获取音频数据

Obtaining audio data from android microphone using Cordova and JavaScript (without getUserMedia)

本文关键字:android 麦克风 获取 数据 音频 getUserMedia Cordova JavaScript 无需 使用      更新时间:2023-09-26

我需要使用JavaScript从android设备的麦克风实时获取频率/音高数据。

我已经为带有getUserMedia和WebAudio API的台式机/笔记本电脑浏览器做了这项工作,但绝大多数Android设备都不支持这些功能。

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

我已经看到了录制功能,例如WhatsApp、Facebook Messenger等。因此,作为最后的手段——因为我不懂Java——有可能为Cordova创建一个使用Java的插件吗?

编辑:我也看过cordova插件媒体https://github.com/apache/cordova-plugin-media其似乎提供幅度数据和当前位置数据。我想我可以通过观察一段时间的振幅来计算频率,还是我太天真了?

我在没有getUserMedia或Android版Web audio API的情况下录制了音频并分析了频率。

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