小程序如何实现长按录音,上划取消发送功能
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,本篇内容主要讲解"小程序如何实现长按录音,上划取消发送功能",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"小程序如何实现长按录音,上划取消发送功能"吧!1.
千家信息网最后更新 2025年11月08日小程序如何实现长按录音,上划取消发送功能
本篇内容主要讲解"小程序如何实现长按录音,上划取消发送功能",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"小程序如何实现长按录音,上划取消发送功能"吧!
1. html部分。
微信小程序事件接口:

//html部分 class部分只是控制样式 与功能无关分析:长按录音需要longpress事件,松开发送需要touchend事件,上滑取消发送需要touchmove事件。由此可有以下html代码
{{record.text}}
2. JS部分
2.1. 首先定义录音的数据结构:
旧版的小程序录音接口wx.startRecord和wx.stopRecord在1.6.0版本后不再维护了,所以使用其建议的wx.getRecordManager接口。
注意:使用wx.getRecordManager接口的话,应调用相应的音频控制接口wx.createInnerAudioContext()来播放和控制录音.
data(){ record: { text: "长按录音", type: "record", iconPath: require("@/../static/icons/record.png"), handler: this.handleRecordStart }, //与录音相关的数据结构 recorderManager: wx.getRecorderManager(), //录音管理上下文 startPoint: {}, //记录长按录音开始点信息,用于后面计算滑动距离。 sendLock: true, //发送锁,当为true时上锁,false时解锁发送},2.2. 监听录音stop
onLoad(){ this.recorderManager.onStop(res => { if (this.sendLock) { //上锁不发送 } else {//解锁发送,发送网络请求 if (res.duration < 1000) wx.showToast({ title: "录音时间太短", icon: "none", duration: 1000 }); else this.contents = [...this.contents,{ type: "record", content: res }];//contents是存储录音结束后的数据结构,用于渲染. } });}2.3. 长按录音方法
在这个方法中需要做的事:
记录长按的点信息,用于后面计算手指滑动的距离,实现上滑取消发送.
做一些界面样式的控制.
开始录音
handleRecordStart(e) { //longpress时触发 this.startPoint = e.touches[0];//记录长按时开始点信息,后面用于计算上划取消时手指滑动的距离。 this.record = {//修改录音数据结构,此时录音按钮样式会发生变化。 text: "松开发送", type: "recording", iconPath: require("@/../static/icons/recording.png"), handler: this.handleRecordStart }; this.recorderManager.start();//开始录音 wx.showToast({ title: "正在录音,上划取消发送", icon: "none", duration: 60000//先定义个60秒,后面可以手动调用wx.hideToast()隐藏 }); this.sendLock = false;//长按时是不上锁的。 },2.4. 松开发送
在这个方法中需要做的事:
做一些样式的控制.
结束录音.
handleRecordStop() { // touchend(手指松开)时触发 this.record = {//复原在start方法中修改的录音的数据结构 text: "长按录音", type: "record", iconPath: require("@/../static/icons/record.png"), handler: this.handleRecordStart }; wx.hideToast();//结束录音、隐藏Toast提示框 this.recorderManager.stop();//结束录音 }2.5. 上划取消发送
在这个方法中需要做的事:
计算手指上滑的距离
根据距离判断是否需要取消发送
如果取消发送,最重要的是this.sendLock = true,上锁不发送
handleTouchMove(e) { //touchmove时触发 var moveLenght = e.touches[e.touches.length - 1].clientY - this.startPoint.clientY; //移动距离 if (Math.abs(moveLenght) > 50) { wx.showToast({ title: "松开手指,取消发送", icon: "none", duration: 60000 }); this.sendLock = true;//触发了上滑取消发送,上锁 } else { wx.showToast({ title: "正在录音,上划取消发送", icon: "none", duration: 60000 }); this.sendLock = false;//上划距离不足,依然可以发送,不上锁 } }, }到此,相信大家对"小程序如何实现长按录音,上划取消发送功能"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
方法
程序
手指
接口
数据
数据结构
结构
控制
功能
事件
样式
部分
信息
内容
正在
学习
实用
更深
重要
上下
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网关与服务器建立连接失败
天津新世纪互联网科技有限公司
游戏软件开发什么专业
服务器管理员权限命令行
数据库异地备份最佳方法
wow所有服务器
秒升互联网科技有限公司
河北系统软件开发靠谱吗
95后学网络安全收入高
太原国产信创服务器
法律法规网络安全国产化
分同网络技术
共话网络安全教程
互联网科技有限公司运营模式
数据库视图有id字段吗
hp服务器 串口
国外的服务器比国内的快吗
怎么把网络安全和数据迁移
根据数据库提取一个人的名字
访问国外服务器原理
9月电商数据库
有数据库运营的个股
咸鱼卖服务器靠谱吗
哪个软件开发服务好
数据库大于2t怎么迁移
软件开发公司名字大全
文本事件分类数据库
网络安全周青少年日简介
网络安全制度保障建设总结
北京服务器搬家找哪家