访客在聊天界面中可以发送语音,其实就是录音以后,调用上传接口,把录音文件发送给客服。

点击麦克图标以后,展示出一个elementui的dialog弹窗,里面展示四个功能按钮。

分别是,开始录音,结束录音,取消录音,发送录音。基本流程就是点开始,然后点结束,再点发送。

下面是聊天界面中的dialog弹窗 ,另外我还增加了一个进度条的展示,超过60秒就结束录音,以及展示录音文件

        <!--录音--><el-dialog:visible.sync="audioDialog"width="100%"center><div class="dialogRecoder"><el-progress :color="colors" type="dashboard" :format="recoderFormat" :stroke-width="10" :percentage="recoderSecond"></el-progress><br/><audio v-show="recorderEnd!=null" controls ref="audio" muted="muted" src="" id="audio"></audio><br/><el-button @click="startRecoder()" size="small" type="primary">開始</el-button><el-button @click="stopRecoder()" size="small" type="warning">結束</el-button><el-button @click="cancelRecoder()" size="small" type="danger">取消</el-button><el-button @click="sendRecoder()" size="small" type="success">發送</el-button></div></el-dialog><!--//录音-->

另外,我的代码是根据我自己的项目情况,直接摘抄出来的,请结合自己项目进行修改

然后安装js-audio-recorder

npm i js-audio-recorder

使用方式是  import Recorder from 'js-audio-recorder'

然后就是那四个操作方法了,其中的data属性是

              //录音recorder:null,audioDialog:false,recoderSecond:0,recorderEnd:null,colors: [{color: '#f56c6c', percentage: 20},{color: '#e6a23c', percentage: 40},{color: '#5cb87a', percentage: 60},{color: '#1989fa', percentage: 80},{color: '#6f7ad3', percentage: 100}],

method部分是

             //开始录音startRecoder:function(){if(this.recorder){this.recorder.destroy();this.recorder=null;}var _this=this;Recorder.getPermission().then(function() {_this.recorder = new Recorder();_this.recorderAudio = document.querySelector('#audio');_this.recorder.start();_this.recorder.onprogress = function (params) {_this.recoderSecond = parseInt(params.duration);if(_this.recoderSecond>=60) _this.stopRecoder();}}, function(error){_this.$message({message: error,type: 'error'});return;});},//结束录音stopRecoder:function(){if(!this.recorder){return;}var blob=this.recorder.getWAVBlob();this.recorderAudio.src = URL.createObjectURL(blob);this.recorderAudio.controls = true;this.recorderEnd=blob;this.recorder.destroy();this.recorder=null;},//发送录音sendRecoder:function(){this.stopRecoder();if(!this.recorderEnd) return;let _this=this;let formData = new FormData();formData.append("realfile", this.recorderEnd); //传给后台的file的key值是可以自己定义的fetch(_this.ApiHost+'/2/uploadAudio', {method: "POST",body: formData}).then(response => response.json()).then(res => {console.log(res);if(res.code!=200){_this.$message({message: res.msg,type: 'error'});}else{_this.$message({message: "success!",type: 'success'});_this.cancelRecoder();_this.visitor.message='audio[' + res.result.path+ ']';_this.chatToUser();}}).catch(error => {console.error(error);});},//取消录音cancelRecoder:function(){this.audioDialog=false;if(!this.recorder){return;}this.recorder.destroy();this.recorder=null;this.recoderSecond=0;},//录音的百分比recoderFormat:function(percentage){return percentage+"s";},

在线客服系统访客发送录音功能,在elementui中使用js-audio-recorder实现录音功能,然后上传文件发送出去...相关推荐

  1. 效率至上服务为先,在线客服系统让客服工作更轻松

    "超人也会累."这是一位95后客服的心声.和人直接打交道的工作都不会轻松.作为和客户联系最为密切的客服,承受的压力可想而知.很多人都说做客服是一座围城,在城墙外面看它的时候,觉得它 ...

  2. PHP客服系统-vue客服聊天系统 v1.0

    简介: PHP客服系统-vue客服聊天系统 是一个基于thinkphp6.vue3.workerman(gateworker)开发的单商户版客服聊天系统. 特点: 支持分布式布署 支持本地消息存储 支 ...

  3. 本地部署在线客服系统、客服机器人

    本地部署客服系统的意义 本质上来说,私有化的客服系统是企业拥有终身使用权的,SAAS只是租用的账号: 从性价比的角度来说,本地部署可以不像SAAS一样受到账号数量和使用时间的限制: 根本的意义在于数据 ...

  4. 亲测教程分享|客服系统搭建详细教程,PHP在线客服系统,来客客服系统源码

    前言: 大家好,今天的教程是如何搭建自己的客服系统,废话不多说教程开始 先看一下用户端和客服端的样子 用户端: 客服端 准备工作: 1.有自己的服务器 2.域名 3.源码这边已经给大家整理好了 推荐服 ...

  5. 【微信小程序】客服系统,客服聊天发送商品详情,快捷发送链接和图文消息,附代码和流程

    客服聊天发送商品详情,快捷发送链接和图文消息,附代码和流程 遇到一个新需求,需要做一个客服聊天的功能能够发送链接和图文消息,先在小程序后台做一个配置,首先在后台添加客服 然后客服按钮编写,功能实现 小 ...

  6. 商淘软件IM客服系统 WSTMart客服系统

    商淘软件IM客服系统,是为提升商淘电商生态体验.能与商淘电商生态无缝对接的独立客服系统,支持商淘电商生态插件一键安装.多端适配的即时聊天系统. 商淘软件IM客服系统特点: 1 界面专业大气,打造良好体 ...

  7. php多客服系统,PHP客服系统_ThinkPHP核心多商户版在线客服对接适用场景[PC+WAP+公众号]...

    PHP客服系统安装说明: 服务器系统:Linux + Centos7.x + 宝塔 亲测环境:Nginx 1.18.0 + PHP5.6 + Mysql5.5 运行目录:/public Nginx伪静 ...

  8. 详解升讯威在线客服系统前端 JavaScript 脚本加密技术(1)

    我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户.对我来说,只要能获得用户的认可,就是我最大的动力. 这段时间有几个技术小伙伴问了我一个有意思的问题:"你的前端脚本是 ...

  9. 详解升讯威在线客服系统前端多国语言实现技术:原生支持葡文、印尼文、土耳其文、俄文

    我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户.对我来说,只要能获得用户的认可,就是我最大的动力. 越来越多的用户向我提出需求,希望为访客端增加更多的界面语言,如葡文.印尼文 ...

最新文章

  1. mysql case设固定值_MySQL CASE语句将自定义值放置为NULL
  2. Legacy autograd function with non-static forward method is deprecated. Please use new-style autograd
  3. 【数字信号处理】傅里叶变换性质 ( 傅里叶变换时移性质示例 )
  4. mysql表主键类型_mysql表结构主键类型
  5. 小甲鱼 OllyDbg 教程系列 (十二) : inline patch ( 内嵌补丁 ) 之 调用堆栈查找法
  6. 云计算市场多元并立,唯有合作才能共赢
  7. python加密字符串小写字母循环后错两位_Python简单加密程序:如何将Z循环回
  8. 开启服务器时启动线程
  9. 【LeetCode】【字符串】题号:412. Fizz Buzz
  10. zbbz的lisp_求CAD lisp 程序,选择一条或多条多段线,输出其上点的x,y,z坐标。
  11. Ubuntu下libxml2的安装和使用
  12. 1%大气密度也能飞?NASA把无人机送上火星,最具野心探测计划启动
  13. ThinkPHP在前台模板格式化输出时间
  14. Android之如何分析手机系统相册图片和视频删除后保存的位置然后恢复文件,目前已经适配小米、OPPO、VIVO、一加、努比亚、魅族等手机。
  15. Pytorch autograd.grad与autograd.backward详解
  16. 基于主成分分析的人脸识别及表情识别
  17. Matlab编程之混沌系统李雅普诺夫指数分析
  18. 离线下载Android SDK(100%成功)
  19. css百分比跟em的区别_查看CSS单位:像素,EM和百分比
  20. 接入点 CMNET和CMWAP 区别

热门文章

  1. Python----pywin32如何获取窗口句柄
  2. 基于ASR-PRO离线语音芯片制作的控制小黑盒
  3. PASCAL基础教程简介
  4. 遇到C:\Users\username\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations
  5. 这5个超级经典SQL都不会,回去等通知吧
  6. 静态链接库与动态链接库详解
  7. HarmonyOS什么时候上微内核,华为鸿蒙OS什么时候发售 华为鸿蒙harmonyOS发布会配置价格上市时间_游侠手游...
  8. 这是个超级好用的免费无损放大软件 Topaz Gigapixel AI
  9. php session在高并发问题
  10. jmeter监控报错 k.a.j.p.PerfMonCollector: Can‘t connect TCP transport for host: /xxx:xxx:xx:xx:4444