微信小程序实现倒计时调用相机自动拍照功能


Posted in Javascript onJune 10, 2018

本文实例为大家分享了微信小程序定时拍照的具体代码,供大家参考,具体内容如下

在某些进行签到的场景,为了防止用户选择相册的照片或者不实时拍照,设置相机倒计时自动拍照。

一、首先是视图层index.wxml,视图层主要负责显示组件和图片。

<!--index.wxml-->

 <view class="userinfo-login">
 <view class="page-body">
  <view class="page-body-wrapper">
  <view wx:if="{{src}}"></view> 
  <!-- 如果存在已经拍好的照片就不再显示调用摄像头的组件-->
  <view wx:else>
   <camera device-position="back" flash="off" binderror="error" style="width: 100%; height: 200px;"></camera>
  <!-- 调用摄像头的组件-->
</view>
  <image wx:if="{{src}}" mode="widthFix" src="{{src}}"></image>
  <!-- 显示拍好的照片-->
  </view>
 </view>
 </view>

二、逻辑层index.js,调用倒计时函数并且调用摄像头拍照并保存图片。

//index.js

const app = getApp()
Page({
 data: {
 userInfo: {},
 counting: false//倒计时
 },
 onLoad: function () {
 this.daojishi();//一进来就拍照倒计时
 this.ctx = wx.createCameraContext()//创建摄像头对象
 },
 //倒计时
 daojishi: function () {
 var that = this;
 if (!that.data.counting) {
  //开始倒计时5秒
  countDown(that, 5);
 }
 }
})
//倒计时函数 在page外

function countDown(that, count) {
 if (count == 0) {
 //等于0时拍照 
 that.ctx.takePhoto({
  quality: 'high',
  success: (res) => {
  that.setData({
   src: res.tempImagePath
  })
  wx.showToast({
   title: '拍照完成',
  })
  }
 })
 that.setData({
  counting: false
 })
 return;
 }
 wx.showLoading({//加载时显示倒计时
 title: '拍照倒计时'+count+'秒',
 })

 setTimeout(function () {
 wx.hideLoading()
 }, 1000)
 that.setData({
 counting: true,
 })
 setTimeout(function () {
 count--;
 countDown(that, count);
 }, 1000);
}

主要实现就是这样。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
让Firefox支持event对象实现代码
Nov 07 Javascript
JavaScript 继承机制的实现(待续)
May 18 Javascript
Jquery CheckBox全选方法代码附js checkbox全选反选代码
Jun 09 Javascript
node.js中的http.createClient方法使用说明
Dec 15 Javascript
Css3制作变形与动画效果
Jul 24 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
May 28 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
Nov 17 Javascript
jQuery用noConflict代替$的实现方法
Apr 12 jQuery
手把手教你使用vue-cli脚手架(图文解析)
Nov 08 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
Mar 12 Javascript
js实现删除li标签一行内容
Apr 16 Javascript
vue+canvas实现拼图小游戏
Sep 18 Javascript
深入浅析Vue中的Prop
Jun 10 #Javascript
vue项目部署上线遇到的问题及解决方法
Jun 10 #Javascript
js技巧之十几行的代码实现vue.watch代码
Jun 09 #Javascript
浅谈JS对象添加getter与setter的5种方法
Jun 09 #Javascript
让你5分钟掌握9个JavaScript小技巧
Jun 09 #Javascript
jQuery基于闭包实现的显示与隐藏div功能示例
Jun 09 #jQuery
JS实现区分中英文并统计字符个数的方法示例
Jun 09 #Javascript
You might like
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
PHP Directory 函数的详解
2013/03/07 PHP
PHP入门之常量简介和系统常量
2014/05/12 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
2016/10/14 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
引用外部脚本时script标签关闭的写法
2014/01/20 Javascript
angular.foreach 循环方法使用指南
2015/01/06 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
javascript中获取class的简单实现
2016/07/12 Javascript
移动端js触摸事件详解
2016/09/18 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
详解JS中的attribute属性
2017/04/25 Javascript
Node.js 8 中的 util.promisify的详解
2017/06/12 Javascript
Vue入门之数据绑定(小结)
2018/01/08 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
vue+ts下对axios的封装实现
2020/02/18 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
跟老齐学Python之dict()的操作方法
2014/09/24 Python
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
Python程序中设置HTTP代理
2016/11/06 Python
详解Python中for循环是如何工作的
2017/06/30 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
使用Template格式化Python字符串的方法
2019/01/22 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
详解python uiautomator2 watcher的使用方法
2019/09/09 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
拉斯维加斯酒店、演出、旅游、俱乐部及更多:Vegas.com
2019/02/28 全球购物
网络优化专员求职信
2014/05/04 职场文书
特教教师先进事迹
2014/05/21 职场文书
文秘应届生求职信
2014/07/05 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
golang中切片copy复制和等号复制的区别介绍
2021/04/27 Golang