微信小程序实现倒计时调用相机自动拍照功能
作者:Alice茄子 发布时间:2024-04-17 10:26:38
标签:微信小程序,相机拍照
本文实例为大家分享了微信小程序定时拍照的具体代码,供大家参考,具体内容如下
在某些进行签到的场景,为了防止用户选择相册的照片或者不实时拍照,设置相机倒计时自动拍照。
一、首先是视图层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);
}
主要实现就是这样。
来源:https://blog.csdn.net/weixin_36708477/article/details/80242663


猜你喜欢
- 对于大多数研发人员来说,都期望能找到一个良好的测试/调试方法,来提高工作效率和快速解决问题。所谓调试,偏重于对某个bug的查找、定位、修复;
- 在实际生活中,经常会有文件重复的困扰,即同一个文件可能既在A目录中,又在B目录中,更可恶的是,即便是同一个文件,文件名可能还不一样。在文件较
- 本来是想从网上找找有没有现成的爬取空气质量状况和天气情况的爬虫程序,结果找了一会儿感觉还是自己写一个吧。主要是爬取北京包括北京周边省会城市的
- 先问一个问题, 在firefox 2里,正则表达式字符"\d"全等于"[0-9]"吗?有可能你会答&
- 本文实例讲述了Python实现base64编码的图片保存到本地功能。分享给大家供大家参考,具体如下:# -*- coding:utf-8 -
- 一、保存:graph_util.convert_variables_to_constants 可以把当前session的计算图串行化成一个字
- js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,
- 本文实例讲述了Python基于pygame实现图片代替鼠标移动效果。分享给大家供大家参考,具体如下:想想现在学校pygame有几个钟了,就写
- 简介: tempdb是SQLServer的系统数据库一直都是SQLS
- 本文实例讲述了Django发送html邮件的方法。分享给大家供大家参考。具体如下:在Django中,发送邮件非常的方便,一直没有时间,今天来
- 故障现象 Oracle Database 11g 数据库普通用户登录时提示 ORA-28002: the password will exp
- 我见朋友可以把数据库的记录显示到列表框里去,挺实用,也想做一个。怎么做啊?这简单,代码和说明如下:dblist.asp<html>
- 这也是老早前整理的了,也贴出来吧:1. showModalDialog和showModelessDialog的异同
- 本文实例讲述了python日志logging模块使用方法。分享给大家供大家参考,具体如下:一、从一个使用场景开始开发一个日志系统, 既要把日
- 怀旧滤镜实现原理不管是荣耀华为手机还是其他的手机,我们都可以找到相机中的怀旧效果,这是手机中常用的一种滤镜效果。怀旧风格的设计主要是在图像的
- 在项目中开始使用vue2来构建项目了,跟 vue1 很大的一处不同在于2 取消了props 的双向绑定,改成只能从父级传到子级的单向数据流,
- 想必Java 的开发者没有不知道或者没用过 jps 这个命令的,这个命令是用来在主机上查看有哪些 Java 程序在运行的。我刚用 Go 语言
- 一般我们的项目中会使用1到2个数据库连接配置,同程艺龙的数据库连接配置被收拢到统一的配置中心,由DBA统一配置和维护,业务方通过某个字符串配
- 本文实例讲述了PHP日志LOG类定义与用法。分享给大家供大家参考,具体如下:<?php/*** PHP log 类 */class C
- 变量当把一个值赋给一个名字时,它就会存储在内存中,我们把这块内存称为变量(variable)。在大多数语言中,都把这种行为称为"给