微信小程序实现点击拍照长按录像功能

代码里面注释写的都很详细,直接上代码。官方的组件属性中有触摸开始和触摸结束属性。本功能依靠这些属性实现。

.wxml代码:
<!-- 相机 pages/camera/camera.wxml-->
<!-- 相机 -->
<camera wx:if="{{!videoSrc}}" device-position="back" flash="off" binderror="error" style="width: {{cameraWidth}}px; height: {{cameraHeight}}px;"><!-- 拍完显示照片 --><cover-image wx:if="{{image1Src}}" src='{{image1Src}}'></cover-image><cover-view><!-- 拍照按钮 --><button id='btn-photo-video' bindtouchstart="handleTouchStart" bindtouchend="handleTouchEnd" bindlongpress="handleLongPress" bindtap="handleClick">点击/长按</button></cover-view>
</camera>
<video wx:if="{{videoSrc}}" src="{{videoSrc}}" controls></video>
.wxss代码:
/* pages/camera/camera.wxss */cover-image,video {margin-top:100%;position: absolute;width: 200rpx;height: 200rpx;
}
#btn-photo-video{/* position: absolute; */margin-top:100%;width: 242rpx;left: 2%;
}
.js代码:
// pages/camera/camera.js
Page({/*** 页面的初始数据*/data: {cameraHeight: '',cameraWidth: '',image1Src: '',videoSrc: '',num: 0,},/*** 生命周期函数--监听页面加载*/onLoad: function(options) {//调用设置相机大小的方法this.setCameraSize();this.ctx = wx.createCameraContext();console.log(this.lijiajun)},/*** 生命周期函数--监听页面初次渲染完成*/onReady: function() {},/*** 生命周期函数--监听页面显示*/onShow: function() {},/*** 生命周期函数--监听页面隐藏*/onHide: function() {},/*** 生命周期函数--监听页面卸载*/onUnload: function() {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh: function() {},/*** 页面上拉触底事件的处理函数*/onReachBottom: function() {},/*** 用户点击右上角分享*/onShareAppMessage: function() {},/*** 获取系统信息 设置相机的大小适应屏幕*/setCameraSize() {//获取设备信息const res = wx.getSystemInfoSync();//获取屏幕的可使用宽高,设置给相机this.setData({cameraHeight: res.windowHeight,cameraWidth: res.windowWidth})console.log(res)},/***拍照的方法 */takePhoto() {this.ctx.takePhoto({quality: 'high',success: (res) => {this.setData({image1Src: res.tempImagePath})},fail() {//拍照失败console.log("拍照失败");}})},/*** 开始录像的方法*/startShootVideo() {console.log("========= 调用开始录像 ===========")this.ctx.startRecord({success: (res) => {wx.showLoading({title: '正在录像',})},fail() {console.log("========= 调用开始录像失败 ===========")}})},/*** 结束录像*/stopShootVideo() {console.log("========= 调用结束录像 ===========")this.ctx.stopRecord({success: (res) => {wx.hideLoading();this.setData({videoSrc: res.tempVideoPath,})},fail() {wx.hideLoading();console.log("========= 调用结束录像失败 ===========")}})},//touch start 手指触摸开始handleTouchStart:   function(e)  {    this.startTime  =  e.timeStamp;    console.log(" startTime = "  +  e.timeStamp);  console.log(" 手指触摸开始 " ,  e);  console.log(" this " , this);  },//touch end 手指触摸结束handleTouchEnd:   function(e)  {    this.endTime  =  e.timeStamp;    console.log(" endTime = "  +  e.timeStamp);  console.log(" 手指触摸结束 ", e);//判断是点击还是长按 点击不做任何事件,长按 触发结束录像if (this.endTime - this.startTime > 350) {//长按操作 调用结束录像方法this.stopShootVideo();}},/*** 点击按钮 - 拍照*/handleClick:   function(e)  {    console.log("endTime - startTime = "  +  (this.endTime  -  this.startTime));        if  (this.endTime  -  this.startTime  <  350)  {    console.log("点击");//调用拍照方法this.takePhoto();    }},/*** 长按按钮 - 录像*/handleLongPress:   function(e)  {console.log("endTime - startTime = "  +  (this.endTime  -  this.startTime));console.log("长按");// 长按方法触发,调用开始录像方法this.startShootVideo();},
})

----------------------------- end -----------------------------

微信小程序实现点击拍照长按录像功能相关推荐

  1. 微信小程序实现点击拍照以及长按录像功能

    话不多说,直接上代码,代码里面注释写的都很详细 wxml文件: <!-- 相机 --> <camera wx:if="{{!videoSrc}}" device- ...

  2. 微信小程序结合SpringBoot实现WebSocket长链接

    微信小程序结合SpringBoot实现WebSocket长链接 引入 WebSocket 微信小程序部分实现 js部分 页面部分 后端SpringBoot实现 WebSocketConfig.java ...

  3. 【uni-app】UniApp实现微信小程序中拨打手机电话和长按加微信客服好友(完整代码示例)

    UniApp实现微信小程序中拨打手机电话和长按加微信客服好友(完整代码示例) 一.service.Vue <template><view><!-- 标题栏 -->& ...

  4. 微信小程序开发——点击按钮获取用户授权没反应或反应很慢的解决方法

    微信小程序开发--点击按钮获取用户授权没反应或反应很慢的解决方法 参考文章: (1)微信小程序开发--点击按钮获取用户授权没反应或反应很慢的解决方法 (2)https://www.cnblogs.co ...

  5. 微信小程序实现点击导航条切换页面

    本文实例为大家分享了微信小程序实现点击导航条切换页面的具体代码,供大家参考,具体内容如下 我录制了个gif如下,黄色部分是不可以滑动的,蓝色部分可以滑动. 代码解说: 首先我在js自定义了navSta ...

  6. 微信小程序——绑定点击事件

    微信小程序出来了那么长时间了,之前一直准备升学和毕业设计(过段时间我要写一写我的毕业设计),最近马上毕业了,终于有时间来研究一下了,先从最简单的点击事件开始吧! 首先我们在test.wxml中加入以下 ...

  7. 微信小程序 map 点击图标回到自己的位置(不使用controls控件)

    先上效果图: 原由(必看): 本来微信小程序的map 里面的 controls控件可以轻松实现,但是官方说要废弃了,说采用 cover-view代替,其实就是一个点击事件.用不用cover-view ...

  8. 按钮点击_如何设置微信小程序按钮点击事件?

    当我们需要点击按钮实现一个操作时,我们应该怎么设置?这里给大家介绍两种方法: 方法一:使用小程序模板,无需懂技术. 这种方法比较简单,你只需要选一个比较简单的小程序模板,比如「上线了」sxl.cn,在 ...

  9. 微信开发工具button跳转页面_微信小程序按钮点击跳转页面详解

    微信小程序中,按钮也是标签,它通过bindtap属性绑定点击事件: 然后在js里面注册这个回调函数: 回调函数里面通过 wx.navigateTo({ url: '/pages/index/talkP ...

最新文章

  1. 第三次AI寒冬即将来袭?
  2. Prolific PL2303SA 调试
  3. 【编程题目】输入一个单向链表,输出该链表中倒数第 k 个结点
  4. php 5.3 require,PHP5.3提示PHP Wrequire(./xx.php)arning: [function.require]: failed to open stream
  5. php调用另一个php文件里的变量的值,thinkphp中一个方法调用另一个步骤的变量
  6. Spring Boot 2.X 来临,本文将带你起飞
  7. 面试必问的 CAS ,要多了解
  8. Dubbo的基本介绍和搭建一个Dubbo环境
  9. 中国农业主导市场趋势报告、技术动态创新及市场预测
  10. 互联网系统架构的演进
  11. Design Patterns in ActionScript
  12. xp系统简单tcpip服务器,XP系统怎样安装TCP/IP协议
  13. c语言知识竞赛题库答案,2021年9月全国计算机二级C语言考试真题及答案
  14. win10添加网络打印机_windows10安装Hp1010/1012/1015打印机教程
  15. 解决你的R语言乱码问题
  16. [Perl] Data::Dumper模块的用法简介
  17. hdu多校第六场1005 (hdu6638) Snowy Smilel 线段树/区间最大和
  18. 解决Centos8自带Firefox实现播放声音与视频-Linux、VMware
  19. mysql创建、修改、删除索引和主键
  20. flutter Spacer 撑开整个屏幕

热门文章

  1. html5 游戏 闪退,为什么玩游戏会闪退
  2. 小型图像数据集效果优化:使用预训练的CNN
  3. Word Embedding的通俗解释
  4. 大型软件架构的平台化 VS 业务多样性,如何取舍?
  5. Java动态编译优化——URLClassLoader 内存泄漏问题解决
  6. 毕业设计 单片机交通安全车辆测速系统 - 嵌入式 物联网
  7. 【转】一个清华学生留学香港后对人生的思考
  8. 大数据时代网络信息安全如何保障
  9. NSI脚本打包文件EXE乱码_马鸿凯_新浪博客
  10. 惊呆了!瞬间扩容10T空间,直接将阿里云盘变本地硬盘!还能这样玩阿里云盘?