小程序采集录音并上传到后台
本文实例为大家分享了小程序录音上传的具体代码,供大家参考,具体内容如下
demo.wxml
录音开始(mp3) 录音结束 播放录音 播放录音
demo.wxss
view{ padding:15px; }
demo.js
//pages/newMusic/index.js constrecorderManager=wx.getRecorderManager(); Page({ data:{ }, /** *提示 */ tip:function(msg){ wx.showModal({ title:'提示', content:msg, showCancel:false }) } /** *录制mp3音频 */ ,startRecordMp3:function(){ recorderManager.start({ format:'mp3' }); } /** *停止录音 */ ,stopRecord:function(){ recorderManager.stop() } /** *播放录音 */ ,playRecord:function(){ varthat=this; varsrc=this.data.src; if(src==''){ this.tip("请先录音!") return; } this.innerAudioContext.src=this.data.src; this.innerAudioContext.play() }, onLoad:function(options){ varthat=this; recorderManager.onError(function(){ that.tip("录音失败!") }); recorderManager.onStop(function(res){ that.setData({ src:res.tempFilePath }) console.log(res.tempFilePath) that.tip("录音完成!") }); this.innerAudioContext=wx.createInnerAudioContext(); this.innerAudioContext.onError((res)=>{ that.tip("播放录音失败!") }) } })
java后台接收
packagecom.azor.controller; importjava.text.SimpleDateFormat; importjava.util.Date; importjava.util.HashMap; importjava.util.Map; importjavax.servlet.http.HttpServletRequest; importorg.apache.commons.codec.binary.Base64; importorg.apache.commons.lang.StringUtils; importorg.slf4j.LoggerFactory; importorg.springframework.beans.factory.annotation.Autowired; importorg.springframework.core.env.Environment; importorg.springframework.web.bind.annotation.RequestMapping; importorg.springframework.web.multipart.MultipartFile; importorg.springframework.web.multipart.MultipartHttpServletRequest; importcom.azor.utils.HttpAPIService; importch.qos.logback.classic.Logger; importnet.sf.json.JSONObject; @RestController @RequestMapping("/base_voice") publicclassBaseController{ privatestaticfinalLoggerlogger=(Logger)LoggerFactory.getLogger(BaseController.class); privatestaticStringlineSeparator=System.getProperty("line.separator"); @Autowired protectedEnvironmentenv; @Autowired protectedHttpAPIServicehttpAPIService; /**上传文件保存路径*/ privatefinalStringFILE_SAVE_PATH="D:/photo/jac_hr_miniprogram_file/"; /**主业务数据Map*/ protectedMapdataMap=newHashMap<>(); /**HTTPPOST请求Map*/ protectedMap postMap=newHashMap<>(); @RequestMapping("/file_upload") publicvoidsaveFile(HttpServletRequestrequest,Stringurl)throwsException{ logger.info("文件上传开始"+lineSeparator); //1.获取从前台传过来得图片 MultipartHttpServletRequestreq=(MultipartHttpServletRequest)request; MultipartFilemultipartFile=req.getFile("file"); //2.获得文件扩展名 StringextOfFile=getExtOfFile(multipartFile); //3.保存到本地 BufferedOutputStreambos=null; Stringfilename=null; try{ Filedir=newFile(file_save_path); if(!dir.exists()){//判断文件目录是否存在 dir.mkdirs(); } filename=newSimpleDateFormat("yyyyMMddHHmmss").format(newDate())+(int)(Math.random()*1000)+"." +extOfFile; bos=newBufferedOutputStream(newFileOutputStream(file_save_path+filename)); bos.write(multipartFile.getBytes()); }catch(Exceptione){ e.printStackTrace(); }finally{ if(bos!=null){ try{ bos.close(); }catch(IOExceptione){ e.printStackTrace(); } } } } publicStringgetExtOfFile(MultipartFilemultipartFile){ //获取文件的名称.扩展名 StringoldName=multipartFile.getOriginalFilename(); StringextensionName=""; //获取原来的扩展名 if((oldName!=null)&&(oldName.length()>0)){ intdot=oldName.lastIndexOf('.'); if((dot>-1)&&(dot<(oldName.length()-1))){ extensionName=oldName.substring(dot+1); } } returnextensionName; } }
效果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。