Chrome 浏览器获取音频设备权限问题 Cannot read property getUserMedia of undefined

谷歌浏览器使用 navigator.mediaDevices.getUserMedia获取资源时报错

在这里插入图片描述

monitor.js:296 Uncaught TypeError: Cannot read property 'getUserMedia' of undefined

导致此类问题一版为两类:
1、需要发布到web服务器,例如niginx tomcat才能支持使用该接口
2、浏览器权限限制,使用音频的接口需要安全权限开启
针对谷歌浏览器安全权限问题
我们可以通过以下方式解决:

一、网页使用https方式访问

此操作需要依赖web服务提供者实现https的访问方式。

二、修改浏览器安全配置(最直接、简单)

1、浏览器地址栏输入:

chrome://flags/#unsafely-treat-insecure-origin-as-secure在这里插入图片描述

2、开启Insecure origins treated as secure

在下方输入栏内输入,你访问的地址url,然后将右侧Disabled 改成 Enabled即可
在这里插入图片描述

3、浏览器会提示重启(Relaunch)

Relaunch即可
在这里插入图片描述

当遇到 "TypeError: Cannot read properties of undefined (reading 'getUserMedia')" 的错误,这通常发生在尝试通过WebRTC API访问用户的摄像头时,因为`getUserMedia` 是浏览器提供的API,用于请求用户媒体权限,如音频和视频。 解决这个问题,你可以按照以下步骤检查: 1. **兼容性确认**:确保你的代码是在支持`getUserMedia`的现代浏览器(如Chrome、Firefox、Edge等)上运行,旧版本的IE和Safari可能不支持。 2. **检查API调用**:确保在访问`getUserMedia`之前,已经正确导入了`navigator.mediaDevices.getUserMedia`。如果不是异步操作,记得添加`async`关键字。 3. **异常处理**:在调用`getUserMedia`时,加上适当的try-catch块来捕获并处理可能出现的错误。 ```javascript async function accessCamera() { try { const stream = await navigator.mediaDevices.getUserMedia({ video: true }); // 使用流进行摄像头操作... } catch (error) { console.error('Error accessing camera:', error); // 可能需要向用户显示错误信息或提供其他选项 } } ``` 4. **权限检查**:如果用户禁止了摄像头权限,你需要处理`NotAllowedError`或其他相关的拒绝错误,并提示用户给予权限。 5. **浏览器兼容库**:有时候,如果你在老版本浏览器上,可能需要借助polyfill库(如adapter.js)来桥接原生API。 如果以上步骤都做了还是出现问题,检查你的环境配置和浏览器控制台,看看是否有更详细的错误信息,以便于定位问题
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值