小程序中调用摄像头,实时获取当前画面信息,可用于扫描实物等场景

595 阅读1分钟

我们平时经常会遇到扫描扫码,扫描实物等类似场景,之前工作中遇到一个需求就是用户扫一扫获取当前物品、艺术品的相关信息,后来这块没有做,这几天不忙,刚好趁此机会写个demo,实现相关功能。

小程序可以使用uniapp或者微信原生来进行开发,其相关API非常类似。查阅相关文档发现小程序有个

uni.createCameraContext()

这个ApI可以创建并返回 camera 组件的上下文 cameraContext 对象。 在这里插入图片描述 利用这个API结合camera组件即可实现区域摄像头,在不需要用户收到触发的情况下实时获取当前画面信息,来做进一步处理。

代码如下:

<camera device-position="back" flash="off" @error="error" style="width: 100%; height: 300px;"></camera> 
methods: {
			takePhoto() {
				var that=this
				const ctx = uni.createCameraContext();
				ctx.takePhoto({
					quality: 'high',
					success: (res) => {
						console.log(res)
						that.src = res.tempImagePath  //获取到的画面信息
					}
				});
			},
			error(e) {
				console.log(e.detail);
			}
		}

我这里是写了个定时来实时获取,如果你有更好的方式,欢迎在评论区发表。

onLoad() {
			var that=this
			this.timer=setInterval(function(){
				that.takePhoto()
			},1000)
		},

到此结束。