主要是用setTimeout函数控制结束,还要考虑this指代的作用域

wxml文件

<!--index.wxml-->
<view class='camera'><image src="/images/border.png" mode="widthFix"></image><camera wx:if="{{isAuth}}" device-position="front" flash="off" binderror="error"></camera>
</view><button class="takePhoto" type="primary" bindtap="startShootVideo">录像</button>

wxss文件

/**index.wxss**/
.camera {width: 430rpx;height: 430rpx;border-radius: 50%;margin: 20px auto 0;position: relative;
}.camera image {position: absolute;width: 100%;height: 100%;z-index: 10;
}.camera camera {width: 430rpx;height: 430rpx;
}button.takePhoto:not([size='mini']) {position: fixed;bottom: 0;left: 0;width: 100vw;height: 90rpx;border-radius: 0;
}

js文件

// index.js
// 获取应用实例
const app = getApp()
Page({data: {isAuth: false,src: ''},onLoad() {const _this = thiswx.getSetting({success: res => {if (res.authSetting['scope.camera']) {// 用户已经授权_this.setData({isAuth: true})} else {// 用户还没有授权,向用户发起授权请求wx.authorize({scope: 'scope.camera',success() { // 用户同意授权_this.setData({isAuth: true})},fail() { // 用户不同意授权_this.openSetting().then(res => {_this.setData({isAuth: true})})}})}},fail: res => {console.log('获取用户授权信息失败')}})},// 打开授权设置界面openSetting() {const _this = thislet promise = new Promise((resolve, reject) => {wx.showModal({title: '授权',content: '请先授权获取摄像头权限',success(res) {if (res.confirm) {wx.openSetting({success(res) {if (res.authSetting['scope.camera']) { // 用户打开了授权开关resolve(true)} else { // 用户没有打开授权开关, 继续打开设置页面_this.openSetting().then(res => {resolve(true)})}},fail(res) {console.log(res)}})} else if (res.cancel) {_this.openSetting().then(res => {resolve(true)})}}})})return promise;},takePhoto() {const ctx = wx.createCameraContext()ctx.takePhoto({quality: 'high',success: (res) => {this.setData({src: res.tempImagePath})console.log(res.tempImagePath)wx.previewImage({current: res.tempImagePath, // 当前显示图片的http链接urls: [res.tempImagePath] // 需要预览的图片http链接列表})}})},startShootVideo() {this.setData({videoSrc: ''})console.log("========= 开始录像 ===========")this.ctx = wx.createCameraContext();let that = thisthis.ctx.startRecord({timeoutCallback: () => {},success: (res) => {setTimeout(()=>{this.ctx.stopRecord({compressed: true, //压缩视频success: (res) => {this.setData({videoSrc: res.tempVideoPath})console.log("========= 结束录像 ===========")console.log(res.tempVideoPath)}});},5000)},fail() {wx.showToast({title: '录像失败',icon: 'none',duration:4000})console.log("========= 调用开始录像失败 ===========")}})},
})

还附带了一个拍照函数,换到网页上就能用。

纳闷怎么没人写微信小程序定时录像的帖子,Debug了好久~

微信小程序 | 自动定时结束录制相关推荐

  1. python玩微信小程序游戏_使用python实现微信小程序自动签到功能

    功能描述目标 完成多账号微信小程序每天自动签到 输出 签到成功则向微信群发送签到成功的信息 否则提示用户签到失败,需手动签到 包管理 requests itchat time threading 程序 ...

  2. 使用python实现微信小程序自动签到2.0

    微信小程序自动签到 功能描述 目标 输出 包管理 程序的结构设计 步骤1 步骤2 步骤3 步骤4 代码实现 使用findler抓包工具查看请求类型 再次使用findler抓包,查看请求内容 使用多线程 ...

  3. es6 去掉空格_微信小程序自动去除input空格的方法

    当用户输入账号或者密码的时候,可能会有输入空格的情况,但是实际需要是不能够有空格的,所以我们要做一个去除空格,并且适应所有input的name参数的方法,下面请看源码: wxml: js: verif ...

  4. 微信小程序 自动对对联

    微信小程序 自动对对联 微信扫描二维码体验吧

  5. 提供一个小工具:微信小程序自动转码机器人!供大家24小时免费使用!

    弄个微信小程序自动转码机器人就可以完成,今天把我的机器人安排给大家,外面很多都是收费的,2毛钱转一次,这个钱真没必要花,我的机器人供大家24小时免费用,下面简单介绍一下机器人的功能. 目前我的机器人, ...

  6. 微信小程序自动检测版本并提示更新新版本

    微信小程序自动检测版本并提示更新新版本 微信小程序开发过程中,我们在版本更新迭代后,微信小程序客户端并不能触发自动更新,需要用户手动清理小程序后重新搜索进入后才能获取到最新的小程序版本,但是这个是用户 ...

  7. 微信小程序----实现语音的录制,并将语音转为文字

    最近在开发微信小程序,遇到一个需求,实现类似于微信发送语音的效果,但是我这个是发送语音后直接转为文字展示. 先说微信小程序的textarea 0/200. 是限制用户输入的最长长度 0这个位置 首先是 ...

  8. 微信小程序自动生成打卡海报

    1 背景 最近在做一款背单词的小程序,用户在学习完成有对外展示的需求.计划小程序可以自动生成打卡海报,用户可以将海报保存,将保存的图片发布至朋友圈.除此之外,为推广小程序,还需要在海报中加入小程序的二 ...

  9. 传图取字:微信小程序自动把图片上的文字提取出来

    生活工作中有时我们喜欢图片或者纸质文档上的一段文字,这些文字重新输入,又费时费力?? 今天小编给大家分享一款微信小程序[传图取字],高精度自动识别图片.文档及PPT中的文字,一键提取并能复制和分享,从 ...

最新文章

  1. AI大潮来袭,Python将纳入高考?!你怎么看
  2. 【398天】每日项目总结系列135(2018.03.10)
  3. TreeView查获节点并选中节点
  4. 卡尔曼滤波器原理和matlab实现
  5. celery 停止_celery 停止执行中 task
  6. 刚看了一个视频,介绍了实体店十几种线上线下引流方法
  7. 打印机共享,局域网打印机连接,安装驱动,安装打印机等问题总结
  8. 【MOS管知识汇总】分类、区分、寄生二极管、导通条件、开关电路、串联电阻
  9. excel组合汇总_Excel汇总20151102
  10. CPU玩的是效率!超线程双核PK物理三核
  11. 武汉超级计算机中心,武汉率先开建人工智能计算中心
  12. 用python实现弹跳球游戏_使用Pygame模块制作一个跳跃的小球游戏
  13. 安徽大学2020年计算机考研,2020年安徽大学计算机专业课初试科目调整
  14. 实体门店营销,抽奖系统为何独占鳌头
  15. 【SQLServer】常用时间格式转换
  16. chromium 84.0.4122.0 WebView apk 启动流程
  17. tplmap-模板注入工具
  18. 从业编程生涯十年,你要了解的程序员养生之道,以及进阶之路。
  19. IT历史:计算机业简史
  20. QCM学习—基于QT自制上位机(多线程)

热门文章

  1. 福大软工 · 第八次作业 课堂实战+后续部分
  2. 推荐一款全能测试开发神器!1分钟快速上手!
  3. 计算机辅助教育课件有哪些类型,多媒体计算机辅助教学 (2).ppt
  4. linux安装tt客户端,timesten的安装与配置(linux)
  5. 前端图表制作——HighCharts图表入门
  6. php resque demo,php-resque 极简php消息队列
  7. xilinx-vipp驱动分析
  8. 无线局域网中iPhone无法访问IIS
  9. 如何通过ps把彩色照片转换为黑白素描
  10. MVVM和MCV模式