小程序聊天室功能怎么实现
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,这篇"小程序聊天室功能怎么实现"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"小程序聊
千家信息网最后更新 2025年11月13日小程序聊天室功能怎么实现
这篇"小程序聊天室功能怎么实现"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"小程序聊天室功能怎么实现"文章吧。
首先在头部定义 ...
1.index.js 使用的是微信自带的api,首先在头部定义一个 const recorderManager = wx.getRecorderManager()//获取全局唯一的录音管理器const createInnerAudioContext = wx.createInnerAudioContext()//由于使用的是wx.getRecorderManager录音,所以在播放录音的时候需要使用此api播放录音 // 需要用户同意授权录音 方法 _checkRecordAuth(cbOk, cbError) { wx.getSetting({ success: (res) => { if (!res.authSetting['scope.record']) { wx.authorize({ scope: 'scope.record', success: (res) => { // 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问 console.log('同意', res); }, fail: res => { console.log('拒绝', res); cbError && cbError(); } }) } else { cbOk && cbOk(); } } }) }, // 长按 _longClickVoicebtn(e) { var that = this; that._checkRecordAuth( () => { //调出取消弹窗 that.setData({ text: '松开 发送', isShowVoice1: true, singleVoiceTimeCount: 0, duration: "00:00", is_clock: true,//长按时应设置为true,为可发送状态 startPoint: e.touches[0],//记录触摸点的坐标信息 }); //开始录音 recorderManager.start(options); recorderManager.onStart(()=>{ let date = new Date(); let s = date.getTime();//注意:使用的是当前的时间戳 - 时长 console.log(s); //记录时长 that.data.timer = setInterval(() => { let voiceTimeCount = (new Date()).getTime() - s voiceTimeCount = voiceTimeCount/1000 that.setData({ duration: formatSecond(voiceTimeCount), singleVoiceTimeCount: voiceTimeCount }) }, 100); }) }, (res) => { //录音失败 console.error('录音拒绝授权'); clearInterval(this.data.timer); this._endRecord(); wx.showModal({ title: '您未授权语音功能', content: '暂时不能使用语音', confirmText: '去设置', success: res => { if (res.confirm) { wx.openSetting({ success: res => { if (res.authSetting['scope.record']) { } } }); } else { } } }); }); },// 移动 如果移动到tabar上面了,就显示 松开手指,取消发送 _sendVoiceMoveEvent(e) { //计算距离,当滑动的垂直距离大于 tabBarHeight 时,则取消发送语音 if (Math.abs(e.touches[0].clientY - this.data.startPoint.clientY) > this.data.tabBarHeight) { this.setData({ is_clock: false,//设置为不发送语音 isShowVoice2: true, isShowVoice1: false, cance: 1, //已取消 }) } else { this.setData({ is_clock: true,//设置为不发送语音 isShowVoice2: false, isShowVoice1: true, cance: 0, //不取消 }); } }, // 松开div 录音结束 _sendVoiceMoveEndEvent(e) { console.log('松开div 录音结束') var that = this clearInterval(this.data.timer); that.setData({ text: '按住 说话', isShowVoice1: false, isShowVoice2: false, singleVoiceTimeCount: 0, duration: "00:00" }); recorderManager.stop()//结束录音 //对停止录音进行监控 recorderManager.onStop((res) => { //此时先判断是否需要发送录音 if (that.data.is_clock == true) { console.log('发送语音') //对录音时长进行判断,少于2s的不进行发送,并做出提示 if (res.duration < 1000) { that.showToast("录音时间太短,请长按录音"); } else { //进行语音发送 const { tempFilePath, duration, fileSize } = res; wx.showLoading({ title: '上传中...', mask: true }) uploadFile(tempFilePath).then(res => { console.log(res); this._sendMessage({ commentContent: res, orgId: that.data.orgId, resId: that.data.childId, commentContentType: "audio", fileSize: fileSize, fileTime: parseInt(duration/1000) }) }) } } }) },2.wxml中,给view添加上 |
3、index.js 播放录音
createInnerAudioContext.autoplay = truecreateInnerAudioContext.src = src //src就是传的播放地址
以上就是关于"小程序聊天室功能怎么实现"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
语音
功能
内容
程序
聊天室
时长
头部
就是
文章
用户
知识
篇文章
移动
价值
信息
全局
地址
坐标
大部分
手指
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
星际2 数据库
广德智能软件开发服务是什么
电子商城系统数据库
mac 怎么输入服务器ip
西安达内软件开发
全国行政区划 数据库
育碧无法连接服务器怎么办
广元软件开发销售电话
什么是网络技术专业服务
华为服务器做系统摁哪个键
凤凰佳影服务器大神
asp的数据库
德阳软件开发要多少钱
网络安全周儿童
电脑管理网络打印服务器
tis服务器红石音乐
数据库约束四位数字
山东德州网络安全专家
某一从事计算机软件开发
武汉乐盛网络技术有限公司
linux查找服务器上的文件
新时期网络安全产业发展新常态
app订制软件开发杭州
虎符网络安全赛视频
育碧无法连接服务器怎么办
软件开发类的工作室
一般数据库只需满足什么范式
网络安全培训新媒体
中国口头文学遗产数据库下载
阿里云服务器要在安全组规则