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

Posted

技术标签:

【中文标题】使用 Cordova 和 JavaScript(没有 getUserMedia)从 android 麦克风获取音频数据【英文标题】:Obtaining audio data from android microphone using Cordova and JavaScript (without getUserMedia) 【发布时间】:2016-04-18 23:55:12 【问题描述】:

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

我已经为带有 getUserMedia 和 Web Audio API 的台式机/笔记本电脑浏览器执行此操作,但绝大多数 Android 设备不支持这些。

我曾尝试使用 cordova-plugin-media-capture 但这会打开一个录音机,然后用户可以保存或丢弃该录音机,保存后您可以使用 cordova-plugin-file 获取数据,如下所示:@ 987654321@ 但我需要它而不是打开录音机,而可能只是一个录音按钮,一旦录音立即提供音频数据(以便它可以实时检测频率数据)。

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

编辑:我还查看了 cordova-plugin-media https://github.com/apache/cordova-plugin-media,它似乎提供了幅度数据和当前位置数据。我想我可以通过观察随时间变化的幅度来计算频率,还是我太天真了?

【问题讨论】:

【参考方案1】:

我设法在没有 getUserMedia 或 Android 的 Web Audio API 的情况下录制音频并分析频率。

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

【讨论】:

以上是关于使用 Cordova 和 JavaScript(没有 getUserMedia)从 android 麦克风获取音频数据的主要内容,如果未能解决你的问题,请参考以下文章

后台 Javascript 或 Cordova 应用程序中的计时器任务

Cordova 加载远程 JavaScript

cordova 使用啥浏览器

什么应用是 cordova开发的

JavaScript 在 Android 4.4+ 上的 Cordova 应用程序中不起作用

javascript中的Cordova Admob免费插件-插件不起作用