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 相关文章推荐
对YUI扩展的Gird组件 Part-1
Mar 10 Javascript
一个报数游戏js版(约瑟夫环问题)
Aug 05 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
Dec 11 Javascript
javascript实现密码验证
Nov 10 Javascript
JavaScript实现点击按钮字体放大、缩小
Feb 29 Javascript
JS组件Bootstrap导航条使用方法详解
Apr 29 Javascript
javascript类型系统——日期Date对象全面了解
Jul 13 Javascript
Angular4学习笔记之准备和环境搭建项目
Aug 01 Javascript
vue-router 路由基础的详解
Oct 17 Javascript
用vue快速开发app的脚手架工具
Jun 11 Javascript
详解在网页上通过JS实现文本的语音朗读
Mar 28 Javascript
js实现抽奖的两种方法
Mar 19 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解决的一个栈的面试题
2014/07/02 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
在JavaScript中遭遇级联表达式陷阱
2007/03/08 Javascript
js或css实现滚动广告的几种方案
2010/01/28 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
java与javascript之间json格式数据互转介绍
2013/10/29 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
AngularJS入门教程之ng-checked 指令详解
2016/08/01 Javascript
JS中如何实现复选框全选功能
2016/12/19 Javascript
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
vue动态路由配置及路由传参的方式
2018/05/23 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
2018/08/05 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
2018/09/16 Javascript
[43:32]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
python开发之list操作实例分析
2016/02/22 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
python 解决flask uwsgi 获取不到全局变量的问题
2019/12/22 Python
使用pytorch和torchtext进行文本分类的实例
2020/01/08 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
wxpython自定义下拉列表框过程图解
2020/02/14 Python
Django Xadmin多对多字段过滤实例
2020/04/07 Python
物业管理员岗位职责范文
2013/11/25 职场文书
大学四年学习的自我评价分享
2013/12/09 职场文书
甜点店创业计划书
2014/01/27 职场文书
聘用意向书范本
2014/04/01 职场文书
护林防火标语
2014/06/27 职场文书
2014年禁毒工作总结
2014/11/24 职场文书
2015年会计人员工作总结
2015/05/22 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电
MySQL导致索引失效的几种情况
2022/06/25 MySQL