Web音频Api输入从特定的麦克风



我正在使用Web Audio Api (navigator)。getUserMedia({audio: true}, function, function))用于录制音频。

如果用户有多个麦克风设备,我可以选择需要的录音设备吗?

我遇到了一个问题的情况下,一个全新的戴尔笔记本电脑(运行Windows 8.1)有两个麦克风设备(板上和外部)和外部设备设置为默认值(设置为默认的操作系统)。

正如预期的那样,在录制时,输入来自外部麦克风,这意味着-静音-没有实际输入。

我能在技术上解决这个问题并从机载设备捕获音频吗?

在搜索的时候,我发现了这个关于检测声卡的问题。

从答案:

您无法控制延迟。你没有办法检测到真正的声音设备。您所能确定的是浏览器是否允许您访问音频通道,以及有多少个音频通道。我还发现,不管另一边是什么,Chrome只会打开一个立体声频道。(它还会将单声道设备视为立体声,将第一个声道复制到L和R声道。)Firefox也有类似的问题。

录制设备截图- https://i.stack.imgur.com/jUrCw.jpg(还不能添加实际照片)

感谢您的建议。

谢谢!Avi。

您希望使用设备枚举和deviceid约束。根据@cwilso的回答,https://webaudiodemos.appspot.com/input/index.html是一个在Chrome中工作的例子。如果你在操作系统中更改了默认麦克风,Chrome 应该拾取它。

Firefox正在添加deviceid和约束,但它们还没有发布。目前在firefox上,如果用户在批准时没有选择"Allow Always",则可以选择任何音频设备作为输入(如果他们选择了,则会选择默认设备而无需询问用户)。请注意,Allow Always需要通过https加载,这不是默认操作(不像Chrome)。

您可以使用Web Audio API选择任何您想要的录制设备,请查看https://jsfiddle.net/bomzj/beap6n2g/。

您可以(选择输入设备)—看看https://webaudiodemos.appspot.com/input/index.html,它允许用户选择输入。请注意,除非您提供安全的服务(https而不是http),否则您将无法访问实际名称。

最新更新