因为手机浏览器一般都会禁止js脚本访问设备,所以这个网页只能在(比较新的)电脑浏览器上正常工作。后端照旧是用flask,这里就不啰嗦了,直接上网页代码:

<body><video id = "video" autoplay style = "width: 480px; height: 320px"></video><div><button id = "capture">拍照</button></div><canvas id = "canvas" width = "480" height = "320"></canvas>
</body>
</html>
<script>// 顾名思义,用CSS3选择器选择网页元素var video = document.querySelector("#video");var canvas = document.querySelector("canvas");// 制造一个二维画布对象var context = canvas.getContext("2d");// constraints是一个控制参数的{video:, audio:}对象,success是成功加载摄像机的数据流后的回调函数,error用来报错function capturePicture(constraints, success, error){if(navigator.mediaDevices.getUserMedia){// .then包含成功后要执行的代码块,.catch用来处理异常navigator.mediaDevices.getUserMedia(constraints).then(success).catch(error);}}function success(stream){var compatibleURL = window.URL || window.webkitURL;console.log(stream);// 将video对象的引用对象变成数据流video.srcObject = stream;video.play(); }function error(err){console.log("访问媒体信息失败:", err.name, ", ",err.message);}capturePicture({video: {width:480, height:320}}, success, error);// 声明一个监听函数用来绘制图像document.querySelector("#capture").addEventListener("click", () => {context.drawImage(video, 0, 0, 480, 320);});
</script>

用navigator对象访问设备摄像头相关推荐

  1. 纯JavaScript实现的调用设备摄像头并拍照的功能

    这篇文章本来不在Jerry计划内的,咱们SAP中国研究院今天已经正式上班了,Jerry也回到工作岗位开始搬砖了. 今天一位同事问我关于本文标题描述的功能如何实现,Jerry在网上随便搜了一下,类似的例 ...

  2. Navigator对象

    Navigator对象 Navigator对象表示用户代理的状态和标识,其允许脚本查询它和注册自己进行一些活动,可以使用只读的window.navigator属性取得实例化的navigator对象的引 ...

  3. 使用JS判断访问设备是电脑还是手机

    一.前言 有时在编写前端页面视图时,需要根据用户不同的访问设备(手机或电脑)对页面设置不同显示样式或跳转到不同的页面.可以使用JS代码获取Navigator对象的userAgent属性,通过对该属性值 ...

  4. BOM系列之Navigator对象

    文章の目录 1.Navigator是什么 2.属性 2.1.buildID 2.1.1.概述 2.1.2.语法 2.1.3.返回值 2.2.clipboard 2.2.1.概述 2.2.2.语法 2. ...

  5. html5调用设备摄像头,实现二维码扫描

    html5调用设备摄像头,实现二维码扫描 最近在做一个签到系统,由于我直接使用了纯网页,因此调用摄像头进行扫码成了大问题.经过几番费力的百度终于找到解决方法. 主要用到MediaDevices.get ...

  6. PHP和js判断访问设备是否是微信浏览器实例

    PHP和js判断访问设备是否是微信浏览器实例,代码非常精简,适合新手学习. js判断是否是微信浏览器: function is_weixin() { var ua = window.navigator ...

  7. JS判断访问设备(userAgent)加载不同页面 JS判断客户端操作系统类型(platform)

    //平台.设备和操作系统var system ={win : false,mac : false,xll : false};//检测平台var p = navigator.platform;syste ...

  8. Navigator 对象,能够清楚地知道浏览器的相关信息

    Navigator 对象属性 appCodeName属性 功能:返回浏览器的代码名.该属性是一个只读的字符串. 语法:navigator.appCodeName 总结:在所有以Netscape代码为基 ...

  9. window.location对象、window.navigator对象、window.history对象

    location 对象是 window 对象给我们提供了一个location属性用于获取或设置窗体的URL,并且可以用于解析URL.因为这个属性返回的是一个对象,所以我们将这个属性也称为locatio ...

最新文章

  1. java游戏脱逃_‎App Store 上的“冒险的逃离筏船”
  2. android 百度悬浮搜索框,百度的搜索框效果如何实现的???
  3. 前端学习(2269)vue造轮子之添加icon
  4. 第八章方差分析以及线性回归(2)
  5. H.264算法的优化策略
  6. sql中join与left-join图解区别
  7. Eclipse项目无错误但是有红叉问题解决
  8. vagrant 报unknown filesystem type 'vboxsf' 解决方案
  9. ubuntu下修改用户的默认目录
  10. Java中的接口与抽象类的区别
  11. 等不到那人,回不到人间——dbGet(四)
  12. 监听程序不支持服务 linux,ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序...
  13. 【原创】技术员 Ghost Win 10(x86/x64)企业版 201806
  14. 小米手环6NFc支持Android,小米手环6支持nfc吗 小米手环6有没有nfc功能
  15. ajax 循环出数据库,each遍历 ajax 如何倒序插入数据库
  16. C语言this is a string,求一道C语言题目The aim of this exercise is to write a C program tha
  17. 计算机组成原理试题(三)(附参考答案)
  18. JDK1.8 关于list集合Lambda的使用
  19. Origin制图之热力图(hot-map)
  20. Java制作一个简单地小游戏

热门文章

  1. 微模块数据中心减少数据中心压力
  2. 建立山海关北洋铁路官学堂的倡导者——金达
  3. 【SPSS03】排序题分析
  4. 脑卒中患者常见上肢训练中的脑部激活情况
  5. 3 道路、轨道和公交——TransCAD交通分配模型和算法简介
  6. java 方法 throws_Java异常处理之------Java方法中throws Exception使用案例!什么情况下使用throws Exception?...
  7. 谷歌新版本跨域错误深度剖析与解决:request client is not a secure context and the resource is in more-private address
  8. 数据流程图 状态图 流程图
  9. Makefile学习
  10. cxf client