首页 > 编程语言 >javascript 检测 麦克风状态

javascript 检测 麦克风状态

时间:2024-08-30 18:40:07浏览次数:11  
标签:mediaDevices 麦克风 检测 javascript device navigator getAudioInputDevices 设备


< html lang="zh">
< head >
    < meta charset="UTF-8">
    < meta name="viewport" content="width=device-width, initial-scale=1.0">
    < title >麦克风监听示例
    < style >
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }
        #deviceList {
            margin-top: 20px;
        }
    

< body >
    < h1 >麦克风设备监听
    < button id="checkDevices">检查麦克风设备
    < div id="deviceList">

    < script >
        // 检查浏览器是否支持媒体设备
        if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) {
            const deviceListDiv = document.getElementById('deviceList');

            // 定义一个函数来获取并显示设备
            function getAudioInputDevices() {
                navigator.mediaDevices.enumerateDevices().then(devices => {
                    const audioInputs = devices.filter(device => device.kind === 'audioinput');
                    deviceListDiv.innerHTML = '< h2 >当前可用的麦克风设备:';
                    for(let device of audioInputs) {
                        const deviceItem = document.createElement('div');
                        deviceItem.textContent = `${device.label} (ID: ${device.deviceId})`;
                        deviceListDiv.appendChild(deviceItem);
                    }
                    if(audioInputs.length==0){
                        alert('没有可用的设备')
                    }else{
                        alert('检测麦克风接入')
                    }
                });
            }

            // 初始获取设备
            getAudioInputDevices();

            // 监听设备变化
            navigator.mediaDevices.ondevicechange = () => {
                console.log('设备发生变化');
                getAudioInputDevices();
            };

            // 添加按钮点击事件
            document.getElementById('checkDevices').addEventListener('click', getAudioInputDevices);
        } else {
            console.log('该浏览器不支持媒体设备API');
            document.getElementById('deviceList').textContent = '该浏览器不支持媒体设备API';
        }
    

  

标签:mediaDevices,麦克风,检测,javascript,device,navigator,getAudioInputDevices,设备
From: https://www.cnblogs.com/mypsq/p/18389303

相关文章

  • 【目标检测数据集】瓶子分类识别数据集1万张3类VOC+YOLO格式(玻璃瓶金属瓶塑料瓶数据集
    数据集格式:PascalVOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):10106标注数量(xml文件个数):10106标注数量(txt文件个数):10106标注类别数:3标注类别名称:["glass-bottle","metal-bottle","pla......
  • JavaScript 的模板字符串
    字符串插值JavaScript中使用反引号`包裹的字符串叫模板字符串(templateliterals)。人们常用它拼接变量和字符串,即所谓的字符串插值(stringinterpolation)。在使用字符串插值时,使用${}包裹变量或表达式,它是变量的占位符。多行文本模板字符串支持多行文本(multi-linestr......
  • GEE中用JavaScript计算遥感数据在两个日期中变化值的多年平均
      本文介绍在谷歌地球引擎GEE中,提取、计算某一种遥感影像产品在连续的多年中,2个不同时相的数据差值的多年平均值,并将计算得到的这一景差值的结果图像导出的方法。  首先,我们来看一下本文需要实现的需求。现在我们希望计算某一个地区中,在2013年到2020年的这8年中,第257天与249天......
  • 【机器人学】7-3.六自由度机器人自干涉检测-圆柱体的旋转变换【附MATLAB代码】
        前言        上一章确定了机械臂等效的圆柱体的上下圆心坐标,这篇文章将解决算法三个核心中的第二个核心:        一 根据机械臂的几何数据以及DH参数,确定机械臂等效的圆柱体的上下圆心坐标。        二 将一个圆柱......
  • VTK随笔十:VTK图形处理(封闭性检测、联通区域分析、多分辨率处理)
    一、封闭性检测        如果一条边只被一个多边形包含,那么这条边就是边界边。是否存在边界边是检测一个网格模型是否封闭的重要特征。        vtkFeatureEdges是一个非常重要的类,该类能够提取多边形网格模型中四种类型的边。1)边界边。即只被一个多边形或......
  • 【目标检测数据集】瓶子分类识别数据集1万张3类VOC+YOLO格式(玻璃瓶金属瓶塑料瓶数据集
     数据集格式:PascalVOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):10106标注数量(xml文件个数):10106标注数量(txt文件个数):10106标注类别数:3标注类别名称:["glass-bottle","metal-bottle","p......
  • 【目标检测数据集】道路下水井盖破损丢失完好检测数据集2890张4类别VOC+YOLO格式
     数据集格式:PascalVOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):2890标注数量(xml文件个数):2890标注数量(txt文件个数):2890标注类别数:4标注类别名称:["broke","good","lose","uncovered"]......
  • JavaScript开发学习札记:一位Java后端程序员的成长之路
    前言:        这是一篇关于JavaScript的学习笔记,目的是针对java后端开发人员,快速入门并掌握JavaScript这门语言的基本使用,并且能够进入下一阶段框架的学习。引言:为什么学习JavaScript?JavaScript是web开发人员必须学习的3门语言中的一门:HTML定义了网页的内......
  • MARS目标检测-更进一步的一天
    使用baseline跑出的成绩只有0.16,后面几天试过各种改进,下面记录一下自己的改进过程:更好的模型baseline中使用的模型是yolo8n,首先,8代表的是yolo的第八代,n代表的是模型的大小。目前yolo已经开发出第10代了,相比于第8代,第10代更高更快更强,所以理所当然的选择yolo10来训练我们的模型......
  • VL25 输入序列连续的序列检测
    这个题目的意思是输入是单bit脉冲,然后当8个周期的脉冲序列符合给定的参数值则match输出1;因此肯定需要一共8位的寄存器存储总共8个a的输入脉冲此外由于是从左向右匹配,因此每个周期输入的a要从寄存器最低位输入,从右向左移位(temp_a<={temp_a[6:0],a};),这样才是输入满足条件的011100......