一、获取音视频设备

/**
 * 获取音频视频设备
 * 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链接显示内容
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,678评论 1 45
  • WebRTC 学习报告 O_禾火_O[https://www.jianshu.com/u/44dd44d945dd...
    小杰的简书阅读 3,063评论 1 1
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 2,606评论 0 7
  • 大概就是你小心翼翼的跟在她身后,选取所有的“偶然”为她遮风挡雨。
    补钉阅读 195评论 0 0