/**
* 获取音频视频设备
* let ePromise = navigator.mediaDevices.enumerateDevices
*
* 获取到音频设备的属性
* deviceId 设备属性
* label 设备名称
* kind 设备种类
* groupId 两个设备groupId相同, 说明是同一个物理设备
*/
let gotDevices = (deviceInfos) => {
deviceInfos.forEach(e => {
console.log(`${e.kind}:label=${e.label}:id=${e.deviceId}:groupId=${e.groupId}`)
});
}
let handleError = (err) => {
console.log(`${err.name}:${err.message}`)
}
if(!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {
console.log('menumerateDevices is not supported!');
}else {
navigator.mediaDevices.enumerateDevices()
.then(gotDevices)
.catch(handleError)
}
不同浏览器表现不一样,在Google浏览器中,https可以直接获取设备名称,但在火狐,Safari中,需要先调用getUserMedia,用户手动点击允许获取视频音频权限后,才可以获取到设备名称。
下图为Google中 https网址打开,获取的设备信息
https链接显示内容
在Google中 http网址下打开,获取不到设备的名称
http链接显示内容