一、获取音视频设备

/**
 * 获取音频视频设备
 * 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链接显示内容

你可能感兴趣的:(一、获取音视频设备)