我试图构建一个函数,通过Javascript获取浏览器的所选麦克风名称。就像我们在系统中有几个麦克风并且浏览器中有一个被选中一样,我需要知道他的名字以便在其他功能中使用它。Javascript:获取浏览器所选的麦克风名称
我尝试了getUserMedia方法,但我无法计算如何获得这个麦克风名称。而且,正如我在一些文章中看到的,谷歌浏览器存在一些不兼容问题。
是否有任何其他方式获取此信息?
我试图构建一个函数,通过Javascript获取浏览器的所选麦克风名称。就像我们在系统中有几个麦克风并且浏览器中有一个被选中一样,我需要知道他的名字以便在其他功能中使用它。Javascript:获取浏览器所选的麦克风名称
我尝试了getUserMedia方法,但我无法计算如何获得这个麦克风名称。而且,正如我在一些文章中看到的,谷歌浏览器存在一些不兼容问题。
是否有任何其他方式获取此信息?
navigator.mediaDevices.enumerateDevices()
mediaDevice.label
navigator.mediaDevices.enumerateDevices()
.then(function(devices) {
devices.forEach(function(device) {
console.log(device.kind + ": " + device.label +
" id = " + device.deviceId);
});
})
通过铬45支持,火狐39
弃用
MediaStreamTrack.label
MediaStreamTrack.getSources(function(sourceInfos) {
for (var i = 0; i != sourceInfos.length; ++i) {
var sourceInfo = sourceInfos[i];
console.log(sourceInfo.id, sourceInfo.label);
}
});
弃用在铬45,在浏览器除去47.
getUserMedia必须之前 'enumerateDevices' 或 'getSources' 的方法来调用
你好。谢谢您的回复!两种解决方案都运行良好,对我所需要的东西很有帮助。然而,很难知道浏览器正在使用的麦克风,因为无论浏览器中默认选择哪一个,它们总是具有相同的顺序。 – Bruno
“一些像OSX这样的操作系统有一个”虚拟“默认设备,它的标签中通常有单词”default“(仅在使用过程中可用,或者如果用户授予持久权限),但不是每个操作系统都这样做,不知道任何其他方式来检测违约。“ @jib http:// stackoverflow。com/questions/31264487/web-audio-api-input-from-specific-microphone – bfmags
对不起,英语不是我的主要语言。我会尝试更好地解释它: 我有这个麦克风在浏览器中默认选中:http://s9.postimg.org/igwc1yrfz/mic.png 现在我需要通过Javascript知道的名称/ ID这个麦克风。在浏览器中被选为默认的那个。 我需要这个的原因是将该名称或ID发送到服务,因为我将有另一个应用程序需要使用另一个麦克风。在这个应用程序中需要排除浏览器中使用的麦克风。 – Bruno
你已经看过'navigator.mediaDevices.enumerateDevices()'?这里解释:https://developers.google.com/web/updates/2015/10/media-devices虽然它只支持谷歌浏览器和Firefox。 – Tomasito665