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 相关文章推荐
游戏人文件夹程序 ver 3.0
Jul 14 Javascript
jquery实现效果比较好的table选中行颜色
Mar 25 Javascript
用原生js做个简单的滑动效果的回到顶部
Oct 15 Javascript
JavaScript定义类和对象的方法
Nov 26 Javascript
jQuery浏览器CSS3特写兼容实例
Jan 19 Javascript
jQuery鼠标事件汇总
Aug 30 Javascript
json传值以及ajax接收详解
May 24 Javascript
Vue.js报错Failed to resolve filter问题的解决方法
May 25 Javascript
基于Vue.js实现简单搜索框
Mar 26 Javascript
详解npm 配置项registry修改为淘宝镜像
Sep 07 Javascript
浅谈Vue 自动化部署打包上线
Jun 14 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
Jul 30 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中操作Excel实例代码
2010/04/29 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
js实现索引图片切换效果
2015/11/21 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
微信小程序 教程之模板
2016/10/18 Javascript
JS表格组件神器bootstrap table使用指南详解
2017/04/12 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
vue-music关于Player播放器组件详解
2017/11/28 Javascript
详解webpack编译多页面vue项目的配置问题
2017/12/11 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
react PropTypes校验传递的值操作示例
2020/04/28 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
2020/08/14 Javascript
[01:15:56]2018DOTA2亚洲邀请赛3月30日 小组赛A组 TNC VS Newbee
2018/03/31 DOTA
python笔记:mysql、redis操作方法
2017/06/28 Python
python抓取文件夹的所有文件
2018/02/27 Python
Python3.5面向对象与继承图文实例详解
2019/04/24 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
Python BeautifulReport可视化报告代码实例
2020/04/13 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
工程部主管岗位职责
2013/11/17 职场文书
煤矿班组长岗位职责
2013/12/29 职场文书
高三学习决心书
2014/03/11 职场文书
合伙经营协议书范本
2014/04/18 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
2014年社区计生工作总结
2014/11/18 职场文书
2015年度学校卫生工作总结
2015/05/12 职场文书
2015年扫黄打非工作总结
2015/05/13 职场文书
2015小学教育教学工作总结
2015/07/21 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP
用基于python的appium爬取b站直播消费记录
2021/04/17 Python
pytorch交叉熵损失函数的weight参数的使用
2021/05/24 Python
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏