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);
  });
}    
相关推荐
余人于RenYu1 小时前
Claude + Figma MCP
前端·ui·ai·figma
杨艺韬4 小时前
vite内核解析-第2章 架构总览
前端·vite
我是伪码农5 小时前
外卖餐具智能推荐
linux·服务器·前端
2401_885885045 小时前
营销推广短信接口集成:结合营销策略实现的API接口动态变量填充方案
前端·python
小李子呢02115 小时前
前端八股性能优化(2)---回流(重排)和重绘
前端·javascript
程序员buddha5 小时前
深入理解ES6 Promise
前端·ecmascript·es6
吴声子夜歌5 小时前
ES6——Module详解
前端·ecmascript·es6
桂花饼6 小时前
AI 视频生成:sora-2 模型快速对接指南
人工智能·音视频·sora2·nano banana 2·claude-opus-4-6·gemini 3.1
剪刀石头布啊6 小时前
原生form发起表单干了啥
前端
剪刀石头布啊6 小时前
表单校验场景,如何实现页面滚动到报错位置
前端