当前位置: 首页 > article >正文

WebRtc05:设备管理

获取音视频设备

enumerateDevices

基本格式

var ePromise = navigator.mediaDevices.enumerateDevices();

MediaDevicesInfo

属性:
deviceID 设备ID
label 设备的名字
kind 设备的种类
groupID 两个设备groupID相同,说明是同一个物理设备

Promise

用于处理异步操作的对象,表示一个异步操作的最终完成(或失败)及其结果值
在这里插入图片描述
先处理handle,然后成功则执行resolve,否则执行reject

例子

在这里插入图片描述index.html

<html>
    <head>
        <title> WEBRTC get audio and viedo devices</title>
    </head>
    <body>
        <script src="./js/client.js"></script>
    </body>
</html>

client.js

'use strict'
if (!navigator.mediaDevices 
    || !navigator.mediaDevices.enumerateDevices) {
        console.log('enumerateDevices is not supported');
} else {
    navigator.mediaDevices.enumerateDevices()
        .then(gotDevices)
        .catch(handleError);
}
function gotDevices(deviceInfos) {
    deviceInfos.forEach(function(deviceInfos) {
        console.log(deviceInfos.kind + ": label= "
            + deviceInfos.label + ": id= "
            + deviceInfos.deviceId + ": groupId= "
            + deviceInfos.groupId
        );
    });
}
function handleError(err) {
    console.log(err.name + " : " + err.message);
}

实测没有使用https时,navigator.mediaDevices没有生效,直接打印enumerateDevices is not supported,为了使用https,需要备案网站,而备案又会审核很久,所以最好尽快备案


http://www.kler.cn/a/488824.html

相关文章:

  • 运行.Net 7 Zr.Admin项目(后端)
  • mysql message from server: “Too many connections“
  • 9.4 visualStudio 2022 配置 cuda 和 torch (c++)
  • vue 导出excel接口请求和axios返回值blob类型处理
  • 深入浅出负载均衡:理解其原理并选择最适合你的实现方式
  • netplan apply报错No module named ‘netifaces‘
  • HOW - Form 表单确认校验两种模式(以 Modal 场景为例)
  • Eureka缓存机制
  • RabbitMQ 在 Go 中的核心方法详解
  • 【AIGC-ChatGPT进阶提示词指令】命运之轮:一个融合神秘与智慧的对话系统设计
  • 安科瑞Acrel-1000DP分布式光伏监控系统在浙江安吉成3234.465kWp分布式光伏发电项目中的应用
  • 在 Ubuntu 上对 Nginx 进行源码编译的详细指南
  • 代码随想录刷题day04|(数组篇)209.长度最小的子数组
  • PDF转文本以及转图片:itextpdf
  • 【EXCEL 向下合并制定列的空白内容】
  • C++例程:使用I/O模拟IIC接口(6)
  • Win10本地部署大语言模型ChatGLM2-6B
  • [豆包MarCode AI 刷题] 算法题解 Java 青训入营考核 五题打卡第三天
  • 网络安全:守护数字世界的防线
  • 【react-pdf】实现在线pdf加载——翻页加载和下拉滚动加载
  • Vue.js组件开发-实现滚动加载下一页
  • HOW - Form 表单 label 和 wrapper 对齐场景
  • 统信桌面常用运维命令
  • 【华为OD-E卷 - 服务失效判断 100分(python、java、c++、js、c)】
  • LeetCode 747. 至少是其他数字两倍的最大数
  • C++—14、C++ 中的指针最基础的原理