JavaScript怎样实现摄像头使用?
Admin 2021-10-15 群英技术资讯 1433 次浏览
这篇文章主要给大家分享JavaScript怎样实现摄像头使用的内容,本文的实例是实现在浏览器中实现摄像头的拍照录像功能,那么具体怎样实现呢?下面我们来具体看看实现代码。
1.获得摄像头权限(本文使用chrome)
首先确保你运行以下js所在的url是https协议的或者localhost的:
const constrains = {
video: true,
audio: true
}
navigator.mediaDevices.getUserMedia(constrains)
.then(stream => {
console.log('得到stream的类型是MediaStream')
})
// 在一些老的浏览器上的话:
// navigator.webkitGetUserMedia
// navigator.mozGetUserMedia
之后你的浏览器会有弹出框,告诉你你的浏览器想要访问camera,问你是否允许。
此外,这里的constrains可以设置分辨率的最小、理想和最大值,还可以在手机端通过设置facingMode来控制摄像头的方向等。
2.将得到的stream:MediaStream给video, camera实现直播效果
const video = document.createElement('video');
//document.body.appendChild(video)
const constrains = {
video: true,
audio: true
}
navigator.mediaDevices.getUserMedia(constrains)
.then(stream => {
video.srcObject = stream;
video.play();
})
此时video将播放camera实时录制下来的内容
3.照相
// 展示相片的image标签
const image = document.createElement('image')
// canvas会读取video中的内容,然后输出(有点类似于给video截图)
const canvas = document.createElement('canvas')
const video = document.getElementById('video');
const context = canvas.getContext('2d')
context.drawImage(video, 0, 0, canvas.height, canvas.width)
// 此时将canvas生成的图片转换成一个data url
const url = canvas.toDataURL()
image.src = url
4.录像
需要在2.MediaStream给video的基础上做些修改
const constrains = {
video: true,
audio: true
}
let mediaRecorder
navigator.mediaDevices.getUserMedia(constrains)
.then(stream => {
mediaRecorder = new MediaRecorder(stream)
})
startRecord() {
mediaRecorder.start()
mediaRecorder.ondataavailable = e => {
chunks.push(e.data)
}
}
stopRecord() {
mediaRecorder.stop()
return new Promise(resolve => {
mediaRecorder.onstop = e => {
const blob = new Blob(chunks, { type: 'video/ogg; codecs=opus' })
const audioURL = window.URL.createObjectURL(blob)
resolve(audioURL)
}
})
}
// video标签用来展示录制下来的内容
const video = document.createElement('video');
//document.body.appendChild(video)
// 开始录像
startRecord()
// do something....,比方说这里搞两个button、一个开始录影,一个结束录影
// 结束录影
stopRecord().then(videoUrl => {
video.src = videoUrl
})
// 此时video标签的内容就是你录制下来的内容。
以上就是关于JavaScript怎样实现摄像头使用的介绍,本文代码具有一定的借鉴价值,有需要的朋友可以参考学习,希望对大家学习JS有帮助,想要了解更多可以继续浏览群英网络其他相关的文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本篇文章给大家带来了关于javascript的相关知识,其中主要介绍了关于Math对象方法的相关问题,Math对象是JavaScript的内置对象,提供一系列数学常数和数学方法,该对象不是构造函数,所以不能生成实例,所有的属性和方法都必须在Math对象上调用,下面一起来看一下,希望对大家有帮助。
我们在访问购物网站时,经常会看到一些秒杀活动,一般在秒杀活动区域会放置一个倒计时,用作提醒用户活动结束时间。那么这样的倒计时功能是如何实现的呢?下面我们我们就用JavaScript来实现一个简易的倒计时效果,感兴趣的朋友继续往下看吧。
在Node.js中使用在Typescript中使用在Deno中使用3.APIParamMap:具有字符串键的对象urlcat:构建完整的 URLquery:构建查询字符串subst:替换路径参数join:使用
这篇文章主要为大家详细介绍了vue实现手机验证码登录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
vue中watch是什么?watch就是监测 Vue 实例变化的一个表达式或方法。回调函数得到的参数为新值和旧值,用一个函数取代。那么vue中watch的用法又是什么呢?在vue中watch的用法大致有三种,包括常用用法,立即执行和深度监听。下面我们来具有看看。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008