如何使用webrtc 一
这是系列一1\webrtc 调用摄像头1.1、api使用API : getusermedianavigator.mediaDevices.getUserMedia(Constraints)Constraints 是限制流参数,比如画面宽高。1.2、加入adapter-laster.js为了保证摄像头在浏览器中兼容API而使用<script src="https://webrtc.github
·
这是系列一
1、webrtc 调用摄像头
1.1、api
使用API : getusermedia
navigator.mediaDevices.getUserMedia(Constraints)
Constraints 是限制流参数,比如画面宽高。
1.2、加入adapter-laster.js
为了保证摄像头在浏览器中兼容API而使用
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
3、使用限制宽高
在webrtc中也可以使用16:9 的样式来限制宽高,很简单,如下使用
const Constraints = {
video: {width: {exact: 640}, height: {exact:360}}
};
上面本来是640 480的画面我们截取了640 360
结果如下:
4 、截图
使用canvas的api
context.drawImage(video, 0, 0, 375, 180);
接着我们使用定时器定时取固定区域的图片,得到的结果如上图所示。
window.setInterval(function(){
context.drawImage(video, 0, 0, 375, 180);
},40);
意思为每隔40毫秒画一幅
2、show me the code
html 代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
<title>html5 调用本地摄像头</title>
<style type="text/css">
html,body{
position: relative;
width: 100%;
height: 100%;
padding: 0px;
margin: 0px;
}
video{
width: 640px;
height: 360px;
}
canvas{
width: 640px;
height: 360px;
position: absolute;
left: 0px;
top: 360px;
z-index: 100;
}
</style>
</head>
<body>
<video id="video" autoplay="autoplay" style="background: #ccc;"></video>
<canvas id="canvas"></canvas>
<script type="text/javascript">
const Constraints = {
video: true,
};
var video = document.getElementById("video");
var context = canvas.getContext("2d");
var errocb = function (code) {
alert(code);
};
function handleError(error) {
console.log(`navigator.getUserMedia error: ${error.toString()}.`);
}
function gotLocalMediaStream(mediaStream) {
video.srcObject = mediaStream;
console.log('Received local stream.');
}
navigator.mediaDevices.getUserMedia(Constraints)
.then(gotLocalMediaStream).catch(handleError);
window.setInterval(function(){
context.drawImage(video, 0, 0, 375, 180);
},40);
</script>
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
</body>
</html>
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)