SOURCE

console.log("123345");

function handleError(error)
{
    console.log('error',error);
}

// 参数类型: MediaDeviceInfo
function gotDevices(deviceInfos)
{
    for(let i = 0; i < deviceInfos.length; i++)
    {
        const device = deviceInfos[i];
        console.log(device.kind + ": " + device.label +" id = " + device.deviceId);
    }
}

if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {
  console.log("enumerateDevices() not supported.");
}

navigator.mediaDevices.enumerateDevices()
    .then(gotDevices)
    .catch(handleError);
    
console.log("123345");

function handleError(error)
{
    console.log('error',error);
}

// 参数类型: MediaDeviceInfo
function gotDevices(deviceInfos)
{
    for(let i = 0; i < deviceInfos.length; i++)
    {
        const deviceinfo = deviceInfos[i];
        console.log("deviceInfos[i]:",i);
        console.log(deviceinfo.deviceId);
        console.log(deviceinfo.kind);
        console.log(deviceinfo.lable);
        console.log(deviceinfo.groupId);
    }
}

navigator.mediaDevices.enumerateDevices()
    .then(gotDevices)
    .catch(handleError);
    
console 命令行工具 X clear

                    
>
console