小程序如何实现长按录音,上划取消发送功能
发表于:2024-10-20 作者:千家信息网编辑
千家信息网最后更新 2024年10月20日,本篇内容主要讲解"小程序如何实现长按录音,上划取消发送功能",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"小程序如何实现长按录音,上划取消发送功能"吧!1.
千家信息网最后更新 2024年10月20日小程序如何实现长按录音,上划取消发送功能
本篇内容主要讲解"小程序如何实现长按录音,上划取消发送功能",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"小程序如何实现长按录音,上划取消发送功能"吧!
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安全错误
数据库的锁怎样保障安全
数据库crm中的表
随州软件开发与定制
怎么才能保持网络安全
饥荒服务器更换管理员
DNS服务器什么
鹰网络技术有限公司
无线网络安全pdf
学电脑软件开发学校哪里有
java软件开发项目描述
特朗普访华受益股网络安全
江苏智慧城管软件开发专业制作
网络安全进校园班会主持稿
银行网络安全体系
厦门软件开发人工费
千丁互联网科技有限公司深圳
计算机网络技术常用英语缩写
家里电脑如何成为web服务器
字节跳动旗下公司的数据库
网络安全保障中心是什么编制
郑州市云站推网络技术有限公司
数据库应用技术入门
银行软件开发岗位招聘杭州
缺氧数据库不是整数
系统与服务器断开连接
网络安全入门到精通
红男绿女小说软件开发
java软件开发项目描述
达梦数据库授权文件查询
软件开发的法律
江西外语外贸网络技术基础