首页 > 其他分享 >js摄像头拍照、摄像

js摄像头拍照、摄像

时间:2023-11-26 14:11:06浏览次数:36  
标签:function 摄像 canvas js let video 摄像头 MediaStream

备份留着万一用到,转自:https://cloud.tencent.com/developer/article/1357730?from=15425

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title></title>

    <style type="text/css">
        
    </style>
</head>
<body>
    <div>
         <b>调用移动端摄像头</b><br>
         <label>照相机: <input type="file" id='image' accept="image/*" capture='camera'></label>
         <label>摄像机: <input type="file" id='video' accept="video/*" capture='camcorder'></label>
     </div>
     <hr>
     <div class="box1">
         <div>
             <button onclick="getMedia()">开启摄像头</button>
             <video id="video" width="600" height="400" autoplay="autoplay"></video>
         </div>
         <div>
             <button onclick="takePhoto()">拍照</button>
             <canvas id="canvas" width="600" height="400"></canvas>
         </div>
     </div>
</body>
</html>
<script type="text/javascript">
    function getMedia() {
         let constraints = {
             video: {
                 width: 600,
                 height: 400
             },
             audio: true
         };
         //获得video摄像头区域
         let video = document.getElementById("video");

         // 这里介绍新的方法,返回一个 Promise对象
         // 这个Promise对象返回成功后的回调函数带一个 MediaStream 对象作为其参数
         // then()是Promise对象里的方法
         // then()方法是异步执行,当then()前的方法执行完后再执行then()内部的程序

         // 避免数据没有获取到
         let promise = navigator.mediaDevices.getUserMedia(constraints);
         // 成功调用
         promise.then(function (MediaStream) {
             /* 使用这个MediaStream */
             video.srcObject = MediaStream;
             video.play();
             console.log(MediaStream); // 对象
         })
         // 失败调用
         promise.catch(function (err) {
             /* 处理error */
             console.log(err); // 拒签
         });
     }

     function takePhoto() {
         //获得Canvas对象
         let video = document.getElementById("video");
         let canvas = document.getElementById("canvas");
         let ctx = canvas.getContext('2d');
         ctx.drawImage(video, 0, 0, 600, 400);
     }
</script>

 

标签:function,摄像,canvas,js,let,video,摄像头,MediaStream
From: https://www.cnblogs.com/yyy251/p/17856917.html

相关文章

  • 【Python爬虫】第10篇:js逆向解析和Mongodb数据库。md集合文档(已分享,附代码)
    本文主要学习一下关于爬虫的相关前置知识和一些理论性的知识,通过本文我们能够知道什么是爬虫,都有那些分类,爬虫能干什么等,同时还会站在爬虫的角度复习一下http协议。全套笔记和代码自取地址:请移步这里感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~共8章,37子模块JS的解析......
  • Eslint 的rules一些配置 (.eslintrc.js文件中的rules选项)
    rules:{//off=0,warn=1,error=2,如果是数组,第二项表示参数option//indent:[2,2],//控制缩进为2eqeqeq:1,//警告使用全等//quotes:[2,'single'],//单引号singleQuote:true,'no-console':0,//不禁用console'no-debugger......
  • vue 根据js的变量来设置css 里面的属性的属性值
    1.通过动态绑定style,声明css变量"--fontColor",把变量”fontColor”赋给“--fontColor”2.在css中使用var函数读取“--fontColor”变量点击查看代码<template><divclass="wen_style":style="{'--fontColor':fontColor}">当前字体的颜色......
  • 【5.0】常用模块之json、pickle模块
    【一】序列化和反序列化【1】什么是序列化将原本的字典、列表等内容转换成一个字符串的过程就叫做序列化。【2】为什么要有序列化比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给?现在我们能想到的方法就是存在文件里然后另一个python程序再......
  • gojs常用API
    gojs常用API 操作类API:添加节点:myDiagram.model.addNodeData(node);varnode={};node["key"]="节点Key";node["loc"]="00";//节点坐标node["text"]="节点名称";myDiagram.model.addNodeData(n......
  • 记录--求你了,别再说不会JSONP了
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助JSONP是一种很远古用来解决跨域问题的技术,当然现在实际工作当中很少用到该技术了,但是很多同学在找工作面试过程中还是经常被问到,本文将带您深入了解JSONP的工作原理、使用场景及安全注意事项,让您轻松掌握JSONP。JS......
  • [JS] 事件总线
    事件总线与发布订阅模式事件总线是对发布-订阅模式的一种实现。发布-订阅模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。发布-订阅模式实现了松耦合,发布者不是直接将消息发送给订阅者,而是经过了一个中间的代理,事件总线就是......
  • JSON 格式的字符串转换回数组
    要将JSON格式的字符串转换回数组,你可以使用JavaScript的JSON.parse方法。这个方法可以将一个JSON字符串解析成JavaScript对象或数组。对于你的字符串,可以这样操作:假设你有一个JSON字符串str,其内容如下:'[{"goodsCode":"ABC1","qty":12.22},{"goodsCode":"ABC2","q......
  • Node.js安装及环境配置
    一.安装Node.js步骤1、下载对应你系统的Node.js版本:https://nodejs.org/zh-cn/2、选安装目录进行安装3、环境配置4、测试二、前期准备1、Node.js简介简单的说Node.js就是运行在服务端的JavaScript。Node.js是一个基于ChromeV8引擎的JavaScript运行环境。Node.js使用......
  • 4G打猎摄像机拆机分析
    前言收到一台4G打猎相机,官方外观及功能图片如下所示,现对该设备进行拆机及整体技术分析评估,看我们可以从中学习到什么。(一)什么是打猎相机所谓打猎相机,也叫野外相机,专门用于野外观察和监测野生动物的一种低功耗轻便型相机。根据官方图片我们对它的功能进行简单介绍开关:电源......