【问题标题】:Get mic audio in android. AudioContext在 android 中获取麦克风音频。音频上下文
【发布时间】:2017-04-20 10:46:04
【问题描述】:

(由于某种原因,我无法得到这个问题的答案......)

你好。我需要访问安卓麦克风。我使用这个在网络上制作了一个调谐器应用程序:https://github.com/cwilso/PitchDetect。工作得很好。

但是,当我使用 intelXDK 和 cordova 插件将应用程序构建到 android 时,我无法获得任何麦克风输入。我不确定是否需要使用它:https://github.com/edimuj/cordova-plugin-audioinput。似乎是在android中获取audioContext的正确方法。另外,它在安装应用程序时会显示一条警告,说它需要授权。应该是正道吧?

无论如何,有人可以帮我解决这个问题吗?知道为什么,尽管我收到日志说输入已启用,但我无法获得任何音频? (麦克风正在工作)

【问题讨论】:

    标签: android cordova audio web-audio-api intel-xdk


    【解决方案1】:

    我是 cordova-plugin-audioinput 的创建者,这是一个 Cordova 插件,可让您访问来自麦克风的原始音频数据。如果不修改 PitchDetect 库,则不能将其与 audioinput 插件一起使用。 PitchDetect 库依赖于 getUserMedia API,旧版 Android 网络视图 (

    一种可以解决您在 Android 上的特定问题的快速方法:

    英特尔 XDK 支持使用 Crosswalk webview 构建 Android 应用程序,这使您能够使用支持 Web Audio API 和 getUserMedia API 的更新版本的 Blink(Chrome 的开源版本)。

    要在您的构建中启用 Crosswalk,请转到英特尔 XDK 中 Android 的 构建设置 屏幕,并确保选中“使用 Crosswalk 优化” 复选框。有关将 Crosswalk 与英特尔 XDK 结合使用的更多信息:https://software.intel.com/en-us/xdk/blog/what-is-crosswalk

    我相信该应用也需要获得访问麦克风的权限,因此请在 “添加权限”中输入 “android.permission.RECORD_AUDIO” /em> 英特尔 XDK 构建配置的字段。

    将 cordova-plugin-audioinput 与 PitchDetect 一起使用

    另一方面,如果您希望将 cordova-plugin-audioinput 与 PitchDetect 库一起使用(例如,如果您希望您的应用也可以在不支持 getUserMedia API 的 iOS 中运行),您必须做一些修改;具体来说,您需要更改 PitchDetect 的 toggleLiveInput 函数,使其不依赖于 getUserMedia,而是启动(和停止)audioinput 插件并将 audioinput 插件连接到 PitchDetect 分析器:

    audioinput.start({
        streamToWebAudio: true,
        audioContext: audioContext // To ensure that the audioinput plugin uses the same audioContext as the PitchDetect library
    });
    analyser = audioContext.createAnalyser();
    analyser.fftSize = 2048;
    audioinput.connect(analyser);
    updatePitch();
    

    请注意,上面的示例仍然依赖于 Web Audio API,它对旧 Android 版本的支持有限; Android 5+ 应该可以正常工作。有关不同浏览器上 Web Audio API 支持的更多信息:http://caniuse.com/#feat=audio-api

    我希望这会有所帮助,祝你好运!

    【讨论】:

    • 嘿。感谢您的支持。我完全按照你说的做了(复制了上面的代码)。但是我注意到 autoCorrelate 函数总是返回 -1 这不好。它返回 -1 因为“如果 (rms
    猜你喜欢
    • 1970-01-01
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多