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 相关文章推荐
对Web开发中前端框架与前端类库的一些思考
Mar 27 Javascript
分享JavaScript与Java中MD5使用两个例子
Dec 23 Javascript
javascript 判断页面访问方式电脑或者移动端
Sep 19 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
Sep 28 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
Nov 26 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
Dec 23 Javascript
简单理解Vue中的nextTick方法
Jan 30 Javascript
Vue不能检测到Object/Array更新的情况的解决
Jun 26 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
Sep 15 Javascript
如何将百度地图包装成Vue的组件的方法步骤
Feb 12 Javascript
微信小程序实现日期格式化和倒计时
Nov 01 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
Apr 09 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
redis 队列操作的例子(php)
2012/04/12 PHP
php变量作用域的深入解析
2013/06/03 PHP
yii上传文件或图片实例
2014/04/01 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
最佳JS代码编写的14条技巧
2011/01/09 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
JavaScript判断微信浏览器实例代码
2016/06/13 Javascript
js中获取时间new Date()的全面介绍
2016/06/20 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
node.js支持多用户web终端实现及安全方案
2017/11/29 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
2019/04/01 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python进阶教程之动态类型详解
2014/08/30 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
python爬取网易云音乐评论
2018/11/16 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
Farnell德国:电子元器件供应商
2018/07/10 全球购物
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
十八大报告观后感
2014/01/28 职场文书
保安岗位职责
2014/02/21 职场文书
小学生竞选班干部演讲稿
2014/04/24 职场文书
旅游专业毕业生自荐书
2014/06/30 职场文书
python如何获取网络数据
2021/04/11 Python