H5:获取手机媒体设备权限,如麦克风、视频等

news/2024/7/24 10:57:46

简介

H5开发中,有的项目需要获取手机设备权限,如麦克风、视频。

具体实现

created() {
  if (navigator.mediaDevices.getUserMedia || navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia) {
  this.getUserMedia({ video: true, audio: true }); // 调用用户媒体设备,访问摄像头、录音
} else {
  console.log("你的浏览器不支持访问用户媒体设备");
}
},
method: {
  getUserMedia(constrains) {
      let that = this;
      if (navigator.mediaDevices.getUserMedia) {
        // 最新标准API
        navigator.mediaDevices.getUserMedia(constrains).then(stream => { that.success(stream); }).catch(err => { that.error(err); });
      } else if (navigator.webkitGetUserMedia) {
        // webkit内核浏览器
        navigator.webkitGetUserMedia(constrains).then(stream => { that.success(stream); }).catch(err => { that.error(err); });
      } else if (navigator.mozGetUserMedia) {
        // Firefox浏览器
        navigator.mozGetUserMedia(constrains).then(stream => { that.success(stream); }).catch(err => { that.error(err); });
      } else if (navigator.getUserMedia) {
        // 旧版API
        navigator.getUserMedia(constrains).then(stream => { that.success(stream); }).catch(err => { that.error(err); });
      }
    },
    // 成功的回调函数
    success(stream) {
      console.log("已点击允许,开启成功");
    },
    // 异常的回调函数
    error(error) {
      console.log("访问用户媒体设备失败:", error.name, error.message);
    }
}

最后

觉得有用的朋友请用你的金手指点一下赞,或者评论留言一起探讨技术!


http://www.niftyadmin.cn/n/1867260.html

相关文章

170614 Windows10+Anaconda2/3+tensorflow-1.2.0rc2(cpu gpu) 安装

Anaconda2/3 共存安装 Anaconda (python3.6)安装tensorflow-1.2.0rc2 cpu & gpu Anaconda2/3下载 tensorflow-cpu-1.2.0rc2下载 or csdn下载 tensorflow-gpu-1.2.0rc2下载 or csdn下载 打包whl资源: http://pan.baidu.com/s/1qYRVbMO (6yav) 在菜单…

JS:async与await的异步处理

简介 近来发现同事大佬写的代码中有await,觉得很好奇,所以抽空看了几篇文章,记录一下所学。 await的意思就是等待。它后面可以跟一个表达式。如果是值(如字符串、数字、普通对象等等)的话,返回值就是本身的值。不过最常用的是后…

JS:理解 JavaScript 中的执行上下文和执行栈

什么是执行上下文? 简而言之,执行上下文是评估和执行 JavaScript 代码的环境的抽象概念。每当 Javascript 代码在运行的时候,它都是在执行上下文中运行。 执行上下文的类型 JavaScript 中有三种执行上下文类型。 全局执行上下文 —— 这是…

JS:词法作用域和动态作用域

作用域 作用域是指程序源代码中定义变量的区域。 作用域规定了如何查找变量,也就是确定当前执行代码对变量的访问权限。 JavaScript 采用词法作用域(lexical scoping),也就是静态作用域。 静态作用域与动态作用域 因为 JavaScript 采用的是词法作用…

170615 windows 下 tensorflow1.2.0rc2 模型的保存与恢复

1. save and restore 英文教程,极力推荐 2. save and restore 中文教程,翻译地道 3. save and restore 简书教程,老版可用 4. save and restore youtube教程,视频操作 5. save and restore youtube代码),下载运行 …

VUE:JS中进行数组对象赋值,页面不能实时回显

简介 VUE项目中,有时候进行 数组对象 赋值时,不能实时回显到页面中,但是打印又有新的数据在里面。 具体实现 场景一:对象赋值新的属性时,页面不能回显。 原因:该对象本身是没有这个属性的。 解决方案&a…

H5:如何将vant-uploader上传的base64图片转换为文件上传到服务器

简介 H5中使用vant的uploader组件选择的图片,一次选择一张返回的是对象,一次选择多张返回的数组(包含一个个对象),但是这些对象都是base64的格式,不是想要的文件格式,于是需要我们转换。 具体…

VUE:v-for循环出来的el-form,js如何进行总的表单验证

简介 页面上,会有循环多个表单并验证的需求。如下图。左侧一个菜单,一个菜单下有多个规则,一个规则一个表单(之所以没有全部用一个表单的原因是要在切换规则时,保留之前所有的验证红色提示)。 具体实现 …