【发布时间】:2016-08-08 13:54:56
【问题描述】:
通过navigator.getUserMedia 访问用户的麦克风非常简单。但是,如果我使用的是移动浏览器并想从远处拾取音频,比如使用“免提”模式怎么办?
我将如何实现这一目标?似乎有原生应用可以做到这一点,但是 Web Audio 呢?
这样做的目的是使用 DTMF 在设备之间发送消息。我已经用我的笔记本电脑实现了这一点,因为它的麦克风可以从很远的地方录制周围的音频,但是我可以使用的任何手机似乎只能在“喉舌”附近录制音频,所以我必须将手机非常靠近源发言人,即使有很小的机会收到消息。除非我能让移动麦克风从远处拾取音频,否则这将达不到目的。
编辑:关于距离,我的意思是大于几英尺,而不是仅仅几厘米。环境声音,而不是麦克风旁边的声音。
【问题讨论】:
-
你确定它是在扬声器模式下的不同“模式”还是你只是假设这一切?
-
@NicholasKyriakides 我假设存在一种不同的模式,因为对输入波形进行放大似乎并不能提高我解码音频信号的质量。通过放大,我只是将样本相乘。我不认为这会奏效,但值得一试。适用于 Android 的 Sound Analyzer 应用程序的功能与我想要实现的功能非常相似,它能够拾取远处的声音并绘制频谱图,因此要么我做的不正确,要么无法使用 Web Audio。
-
智能手机的环境麦克风可能是几个物理设备,但我认为它们是操作系统中的一个设备。因此,当您想要更好的音频时,您只需增加麦克风的增益,浏览器就可以让操作系统处理它。我在做假设,但它应该是这样工作的。所以尝试增加增益(应该在 Chrome 中工作,不确定其他):html5rocks.com/en/tutorials/webaudio/intro
-
@Blindman67 你的两个 cmets 都是我的问题的相关答案,所以,如果你们中的任何一个想将你的 cmets 详细说明为答案,那会很酷。简而言之,扬声器实际上有一个单独的模式;在第一个链接中调整了 mediaDevices 示例后,该设备实际上是“免提电话”。虽然我现在很确定这已经是我的默认设置了。使用 gainNode 还可以调整麦克风的音量,如 html5rocks 教程中所示。但事实证明,我的问题可能与麦克风输入无关。
标签: javascript google-chrome mobile web-audio-api getusermedia