以下是修改后的代码:
<view class="flex flex-direction"> <button class="cu-btn lg margin-tb-sm" :class="isRecording ? 'bg-red' : 'bg-blue'" @touchstart="handleTouchStart" @touchend="stopRecording" style="height: 80px;"> <text class="cuIcon-voice"></text> {{isRecording ? '松开结束' : '按住不放开始'}} </button> </view>
然后在你的JavaScript/Vue方法部分添加以下代码:
data() { return { isRecording: false, lastTouchTime: 0, touchThreshold: 300 // 设置触发间隔阈值,单位毫秒 } }, methods: { handleTouchStart(e) { const now = Date.now(); // 检查距离上次触发的时间是否超过阈值 if (now - this.lastTouchTime > this.touchThreshold) { this.lastTouchTime = now; this.startRecording(e); } }, startRecording(e) { // 原来的录音开始逻辑 if (!this.isRecording) { this.isRecording = true; // 其他录音开始代码... } }, stopRecording(e) { // 录音结束逻辑 if (this.isRecording) { this.isRecording = false; // 其他录音结束代码... } } }解决方案说明添加了一个新的方法 handleTouchStart 来处理 touchstart 事件使用时间戳来跟踪上次触发的时间设置了一个阈值(这里是300毫秒),只有当两次触发的间隔大于这个阈值时,才会真正执行录音开始的逻辑这样可以有效防止用户快速点击导致的多次触发问题
你可以根据实际需求调整 touchThreshold 的值,使其更适合你的应用场景。
网友回复
DLNA与UPnP的区别和不同?
苏超自建抢票app,通过先预约再抽签化解高并发抢票?
python如何让给电脑在局域网中伪装成电视接收手机的投屏图片视频播放?
如何结合python+js如何自己的视频编码与加密播放直播?
python如何在电脑上通过局域网将本地视频或m3u8视频投屏电视播放?
腾讯视频爱奇艺优酷vip电影电视剧视频如何通过python绕过vip收费直接观看?
有没有可免费观看全球电视台直播m3u8地址url的合集?
有没有实现观影自由的免vip影视苹果 CMS V10 API的可用url?
python如何实时检测电脑usb插入检测报警?
如何判断真人操作的鼠标移动直线轨迹与机器操作的轨迹?