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 相关文章推荐
关于document.cookie的使用javascript
Oct 29 Javascript
jQuery学习笔记之jQuery选择器的使用
Dec 22 Javascript
jquery中each遍历对象和数组示例
Aug 05 Javascript
浅谈jquery回调函数callback的使用
Jan 30 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
Mar 16 Javascript
AngularJS基础 ng-init 指令简单示例
Aug 02 Javascript
jQuery实现的无限级下拉菜单功能示例
Sep 12 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成&quot;...&quot;)
Nov 28 Javascript
React实现点击删除列表中对应项
Jan 10 Javascript
微信小程序实现选项卡功能
Jun 19 Javascript
JavaScript复制变量三种方法实例详解
Jan 09 Javascript
javascript用defineProperty实现简单的双向绑定方法
Apr 03 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
很实用的一个完整email发送程序
2006/10/09 PHP
PHP将回调函数作用到给定数组单元的方法
2014/08/19 PHP
PHP静态成员变量和非静态成员变量详解
2017/02/14 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
$()JS小技巧
2007/07/21 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
js的onload事件及初始化按钮事件示例代码
2013/09/25 Javascript
简介JavaScript中valueOf()方法的使用
2015/06/05 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
原生JS实现图片轮播与淡入效果的简单实例
2016/08/21 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
Vue实现购物车功能
2017/04/27 Javascript
基于BootStrap的前端分页带省略号和上下页效果
2017/05/18 Javascript
layui前端框架之table表数据的刷新方法
2018/08/17 Javascript
node-red File读取好保存实例讲解
2019/09/11 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
python和pyqt实现360的CLable控件
2014/02/21 Python
python实现unicode转中文及转换默认编码的方法
2017/04/29 Python
Python实现调用另一个路径下py文件中的函数方法总结
2018/06/07 Python
pandas数据拼接的实现示例
2020/04/16 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
英国电器零售商:PRC Direct
2018/06/21 全球购物
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
融资租赁计划书
2014/04/29 职场文书
2014年优质护理服务工作总结
2014/11/14 职场文书
2014年仓库工作总结
2014/11/20 职场文书
社区三八妇女节活动总结
2015/02/06 职场文书
管理失职检讨书
2015/05/05 职场文书