当前位置:网站首页>游览器打开摄像头案例
游览器打开摄像头案例
2022-07-01 21:32:00 【拼命_小李】
<!doctype html>
<html lang="en">
<head>
<title>js调用摄像头拍照上传图片</title>
<meta charset="utf-8">
</head>
<body>
<button onclick="openMedia()">开启摄像头</button>
<video id="video" width="500px" height="500px" autoplay="autoplay"></video>
<canvas id="canvas" width="500px" height="500px"></canvas>
<button onclick="closeMedia()">关闭摄像头</button>
<script>
let mediaStreamTrack=null; // 视频对象(全局)
function openMedia() {
let constraints = {
video: { width: 500, height: 500 },
audio: true
};
//获得video摄像头
let video = document.getElementById('video');
let promise = navigator.mediaDevices.getUserMedia(constraints);
promise.then((mediaStream) => {
mediaStreamTrack = typeof mediaStream.stop === 'function' ? mediaStream : mediaStream.getTracks()[1];
video.srcObject = mediaStream;
video.play();
});
setInterval(sendImage, 3000);
}
// 拍照
function takePhoto() {
//获得Canvas对象
let video = document.getElementById('video');
let canvas = document.getElementById('canvas');
let ctx = canvas.getContext('2d');
ctx.drawImage(video, 0, 0, 500, 500);
// toDataURL --- 可传入'image/png'---默认, 'image/jpeg'
let img = document.getElementById('canvas').toDataURL();
// 这里的img就是得到的图片
console.log('img-----', img);
document.getElementById('imgTag').src=img;
}
// 关闭摄像头
function closeMedia() {
mediaStreamTrack.stop();
}
// 发送数据到后端
function sendImage(){
//创建异步对象
var xhr = new XMLHttpRequest();
//设置请求的类型及url
xhr.open('get', 'http://localhost:8000/sys/test', true);
//post请求一定要添加请求头才行不然会报错
xhr.setRequestHeader("Content-type","application/json");
//发送请求
// xhr.send({image:document.getElementById('canvas').toDataURL()});
xhr.send();
xhr.onreadystatechange = function () {
// 这步为判断服务器是否正确响应
if (xhr.status == 200) {
console.log(xhr.responseText);
}
};
};
</script>
</body>边栏推荐
- cmake工程化相关
- Principle of motion capture system
- Internship: gradually moving towards project development
- 王者战力查询改名工具箱小程序源码-带流量主激励广告
- 杰理之蓝牙耳机品控和生产技巧【篇】
- Data analysts sound tall? Understand these points before you decide whether to transform
- Accelera Systems Initiative是一个独立的非营利组织
- Face recognition system opencv face detection
- What did you learn about cheating after you went to college?
- 300题线性代数 第四讲 线性方程组
猜你喜欢
随机推荐
BPR(贝叶斯个性化排序)
leetcode刷题:栈与队列01(用栈实现队列)
PLC模拟量输入 模拟量转换FB S_ITR(三菱FX3U)
芭比Q了!新上架的游戏APP,咋分析?
考虑关系的图卷积神经网络R-GCN的一些理解以及DGL官方代码的一些讲解
Écrire un document de blog
Is it safe to open an account online? Can a novice open a stock trading account.
深度学习 常见的损失函数
Kuberntes云原生实战一 高可用部署架构
《软件工程导论(第六版)》 张海藩 复习笔记
NSI脚本的测试
股票手机开户哪个app好,安全性较高的
Richview RichEdit srichviewedit PageSize page setup and synchronization
Customize the insertion of page labels and realize the initial search of similar address books
Keras machine translation practice
C中main函数的几种写法
【mysql 07】GPG key retrieval failed: “Couldn‘t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022“
网上开户是安全的吗?新手可以开炒股账户吗。
【商业终端仿真解决方案】上海道宁为您带来Georgia介绍、试用、教程
Comprehensive evaluation and detailed inventory of high-quality note taking software (I) note, obsedian, remnote, flowus









