navigator.mediaDevices.getUserMedia获取本地音频/麦克权限并提示用户

效果

获取权限

NotFoundError

NotAllowedError

代码

javascript 复制代码
// 调用	
captureLocalMedia()

// 方法
function captureLocalMedia() {
  console.warn('Requesting local video & audio');
  navigator.mediaDevices
  .getUserMedia(constraints)
  .then(function (stream) {
    console.warn(stream)
    console.warn('Received local media stream');
    // connect local audio
    // console.warn(stream)
    // localStream = stream;
    // try {
    //   audio.srcObject = null // stream;
    // } catch (error) {
    //   console.warn(error)
    //   audio.src = window.URL.createObjectURL(stream);
    // }
  })
  .catch(function (err) {
    if (err.name === 'NotFoundError') {
     alert('浏览器无法获取音频设备,请检查电脑的麦克风是否可用')
     } else if (err.name === 'NotAllowedError') {
       alert('浏览器未检测到音频设备,请在浏览器设置中打开访问权限,打开后才可正常通话')
     } else {
       alert('未知,请检查设备是否正常')
     }
    console.log(err)
    console.log(err.name + ": " + err.message);
  });
}    
相关推荐
dragon7255 分钟前
Flutter错误处理机制
前端·flutter
数据知道7 分钟前
claw-code 源码详细分析:Bootstrap Graph——启动阶段图式化之后,排障与扩展为什么会变简单?
前端·算法·ai·bootstrap·claude code·claw code
悟空瞎说15 分钟前
深度解析:Vue3 为何弃用 defineProperty,Proxy 到底强在哪里?
前端·javascript
leafyyuki17 分钟前
告别 Vuex 的繁琐!Pinia 如何以更优雅的方式重塑 Vue 状态管理
前端·javascript·vue.js
Amos_Web19 分钟前
Solana开发(1)- 核心概念扫盲篇&&扫雷篇
前端·rust·区块链
Hooray26 分钟前
AI 时代的管理后台框架,应该是什么样子?
前端·vue.js·ai编程
ZC跨境爬虫27 分钟前
极验滑动验证码自动化实战(ddddocr免费方案):本地缺口识别与Playwright滑动模拟
前端·爬虫·python·自动化
某人辛木33 分钟前
nodejs下载安装
开发语言·前端·javascript
Ztopcloud极拓云视角1 小时前
Claude Code 源码泄露事件技术复盘:npm sourcemap 配置失误的完整分析
前端·npm·node.js
全栈练习生1 小时前
利用自定义Ref实现防抖
前端