小程序聊天室功能怎么实现
发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,这篇"小程序聊天室功能怎么实现"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"小程序聊
千家信息网最后更新 2025年02月19日小程序聊天室功能怎么实现
这篇"小程序聊天室功能怎么实现"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"小程序聊天室功能怎么实现"文章吧。
首先在头部定义 ...
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安全错误
数据库的锁怎样保障安全
wps为何没有数据库
数据库发布域名
闵行区个性化软件开发来电咨询
优贝互联网科技有限公司
腾讯服务器多少钱
杭州湖畔网络技术有限公司简介
聊天软件开发多少钱
前端图片上传服务器
网络安全研究2021年第三期
管理数据软件开发
判断dns系统是一个数据库吗
软件开发行业前景怎样
软件开发项目经理一般做什么
软件开发转让协议版本
智能模组有什么服务器
用excel数据库
城际出行软件开发
c 软件开发笔试题
校招 软件开发 面试经验
凤阳租房软件开发
青海网络安全科技
网络安全管理员四级教材
计算机网络技术升本考试试题
服务器如何泡水
一个区两个服务器可以邮寄东西吗
国产数据库管理系统是什么
四川无际智慧科技有限公司服务器
软件开发与项目管理名词解释
网络安全专题网络培训心得撰写
成都家教服务软件开发哪家专业