vue的webcamjs集成方式


Posted in Javascript onNovember 16, 2020

记一次在vue中使用webcamjs调取pc端摄像头拍照

说明

本例调用摄像头基于webcamjs

第一步: Photo.vue 组件

<template>
 <div>
  <div id="results">Your captured image will appear here...</div>
  <h1>WebcamJS Test Page</h1>
  <h3>Demonstrates simple 320x240 capture & display</h3>
  <div id="my_camera"></div>
  <form>
   <input type=button value="拍照" @click="take_snapshot()">
  </form>
 </div>
</template>
<script>
import '../assets/webcamjs/webcam.js'
 export default {
 name: 'TakePhoto',
 data() {
  return{
 
  }
 },
 methods: {
   take_snapshot: function () {
    // take snapshot and get image data
    Webcam.snap( function(data_uri) {
     // display results in pages
     document.getElementById('results').innerHTML = 
      '<h2>Here is your image:</h2>' + 
      '<img src="'+data_uri+'"/>';
    } );
   }
   },
   mounted() {
    Webcam.set({
     width: 320,
     height: 240,
     image_format: 'jpeg',
     jpeg_quality: 90
    });
    Webcam.attach( '#my_camera' );
   }
 }
</script>

第二部:使用

<template>
 <div id="app">
  <Photo></Photo>
 </div>
</template>
<script>
import Photo from './components/Photo'
export default {
 name: 'app',
 components: {
  Photo
 }
}
</script>

结果演示

vue的webcamjs集成方式

补充知识:vue网页调用手机摄像头,webview如何实现

近期有个需求,通过vue的网页调用手机摄像头,拍摄完成后,传回照片给vue。

作为刚开始接触安卓的小白,看了非常多的案例,都是新建camera类,处理拍照、拍视频、查看照片等操作。而我的需求非常简单,就是点击按钮,拍照,给网页返回照片而已,不需要如此复杂的操作,于是尝试着用简单的方式完成调用摄像头的功能。

(1)vue端,增加一个a标签,设置跳转关键字camera,这个是安卓识别要调用摄像头的关键点。

vue的webcamjs集成方式

(2)手机端,接受a标签的跳转,注:a标签调用一般会去调用WebViewClient的onPageFinished方法,但是此时的跳转属于非常规跳转,故采用`camera:`标识此次的跳转,然后就会调用WebViewClient的shouldOverrideUrlLoading方法拦截此次跳转,具体写法如下:

vue的webcamjs集成方式

vue的webcamjs集成方式

vue的webcamjs集成方式

基本上就是判断跳转连接中是否包含camera字段了,包含即调用监听事件,利用监听事件调用手机的摄像头,Intent it = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);即可。

不过问题在于WebViewClient的shouldOverrideUrlLoading方法返回对象是boolean类型,那么,我们需要返回的是图片路径或者图片本身,也可以是base64处理过的流,这个类型的返回值对我们没有太多意义,所以设置一个全局变量imageUri,在拍照之前给其赋值,在回调时就利用这个路径可以得到想要的所有格式的图片数据了。

(3)上图,最后一步,完成了就可以直接去vue端接收图片了。

vue的webcamjs集成方式

一枚程序媛,安卓开发新手,做的东西可能比较low,欢迎批评指正。

以上这篇vue的webcamjs集成方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 网页跳转的方法
Dec 24 Javascript
制作高质量的JQuery Plugin 插件的方法
Apr 20 Javascript
js中回调函数的学习笔记
Jul 31 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
Jun 06 Javascript
Angularjs中UI Router全攻略
Jan 29 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
Aug 05 Javascript
socket.io学习教程之深入学习篇(三)
Apr 29 Javascript
详解vue-router2.0动态路由获取参数
Jun 14 Javascript
详解express + mock让前后台并行开发
Jun 06 Javascript
解决Layui数据表格中checkbox位置不居中的方法
Aug 15 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
Jul 20 Javascript
vue v-on:click传递动态参数的步骤
Sep 11 Javascript
SpringBoot在yml配置文件中配置druid的操作
Nov 16 #Javascript
详解JavaScript原型与原型链
Nov 16 #Javascript
详解JavaScript执行模型
Nov 16 #Javascript
Vue 实现拨打电话操作
Nov 16 #Javascript
微信小程序实现页面左右滑动
Nov 16 #Javascript
Vertx基于EventBus发送接受自定义对象
Nov 16 #Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
Nov 16 #Javascript
You might like
php stream_get_meta_data返回值
2013/09/29 PHP
PHP实现的简单分页类及用法示例
2016/05/06 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
javascript 写类方式之十
2009/07/05 Javascript
Javascript 定时器调用传递参数的方法
2009/11/12 Javascript
ext 列表页面关于多行查询的办法
2010/03/25 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
js函数调用常用方法详解
2012/12/03 Javascript
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
JS中数组Array的用法示例介绍
2014/02/20 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
nodejs 实现钉钉ISV接入的加密解密方法
2017/01/16 NodeJs
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
2017/12/05 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
python简单实现基于SSL的IRC bot实例
2015/06/15 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
新年福利来一波之Python轻松集齐五福(demo)
2020/01/20 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
简单几步用纯CSS3实现3D翻转效果
2019/01/17 HTML / CSS
AmazeUI 平滑滚动效果的示例代码
2020/08/20 HTML / CSS
Dune London官网:英国著名奢华鞋履品牌
2017/11/30 全球购物
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
经贸专业毕业生求职信范文
2014/05/01 职场文书
班级文化建设标语
2014/06/23 职场文书
秋季运动会演讲稿
2014/09/16 职场文书
学校教师培训工作总结
2015/10/14 职场文书
JavaScript嵌入百度地图API的最详细方法
2021/04/16 Javascript
nginx的zabbix 5.0安装部署的方法步骤
2021/07/16 Servers