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 相关文章推荐
js导出txt示例代码
Jan 14 Javascript
JavaScript中的关联数组问题
Mar 04 Javascript
jQuery实现根据类型自动显示和隐藏表单
Mar 18 Javascript
bootstrap精简教程_动力节点Java学院整理
Jul 14 Javascript
微信小程序适配iphoneX的实现方法
Sep 18 Javascript
基于vue.js实现分页查询功能
Dec 29 Javascript
vue前端框架—Mint UI详解(更适用于移动端)
Apr 30 Javascript
javascript实现图片轮播代码
Jul 09 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
Oct 28 Javascript
vue路由权限校验功能的实现代码
Jun 07 Javascript
Vue2.0 $set()的正确使用详解
Jul 28 Javascript
JavaScript实现两个数组的交集
Mar 25 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
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
php checkbox复选框值的获取与checkbox默认值输出方法
2010/05/15 PHP
PHP 数组基础知识小结
2010/08/20 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
Javascript Select操作大集合
2009/05/26 Javascript
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
在React 组件中使用Echarts的示例代码
2017/11/08 Javascript
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
2020/12/01 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python解析json实例方法
2013/11/19 Python
python中的global关键字的使用方法
2019/08/20 Python
html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
2013/01/09 HTML / CSS
HTML5 canvas标签实现刮刮卡效果
2015/04/24 HTML / CSS
高级运动鞋:GREATS
2019/07/19 全球购物
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
医学护理毕业生自荐信
2013/11/07 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
父亲节寄语大全
2015/02/27 职场文书
2015年校医个人工作总结
2015/07/24 职场文书
2015年高三毕业班班主任工作总结
2015/10/22 职场文书
MySQL的join buffer原理
2021/04/29 MySQL
jackson json序列化实现首字母大写,第二个字母需小写
2021/06/29 Java/Android
如何利用python创作字符画
2022/06/25 Python