| Page({ | 
|   data: { | 
|     recordingSrc: '', | 
|     isRecording: false, | 
|     isshowVoiceMask: true, //是否显示录音中 | 
|     voiceTime: 2, //录音时长 | 
|     gridConfig: { | 
|       column: 3, | 
|       width: 160, | 
|       height: 160, | 
|     }, | 
|     originFiles: [{ | 
|         url: 'https://tdesign.gtimg.com/mobile/demos/example4.png', | 
|         name: 'uploaded1.png', | 
|         type: 'image', | 
|       }, | 
|       { | 
|         url: 'https://tdesign.gtimg.com/mobile/demos/example6.png', | 
|         name: 'uploaded2.png', | 
|         type: 'image', | 
|       } | 
|     ] | 
|   }, | 
|   | 
|   onLoad() { | 
|     this.recorderManager = wx.getRecorderManager(); | 
|     this.recorderManager.onStart(() => { | 
|       console.log('recorder start'); | 
|       this.setData({ | 
|         isRecording: true | 
|       }); | 
|       this.startWaveformDrawing(); | 
|     }); | 
|   | 
|     this.recorderManager.onStop((res) => { | 
|       console.log('recorder stop', res); | 
|       const { | 
|         tempFilePath | 
|       } = res; | 
|       this.setData({ | 
|         recordingSrc: tempFilePath, | 
|         isRecording: false | 
|       }); | 
|       this.stopWaveformDrawing(); | 
|     }); | 
|   | 
|     this.recorderManager.onError((res) => { | 
|       console.error(res); | 
|       this.setData({ | 
|         isRecording: false | 
|       }); | 
|       this.stopWaveformDrawing(); | 
|     }); | 
|   }, | 
|   handleRemove(e) { | 
|     console.log("handleRemove"); | 
|     const { | 
|       index | 
|     } = e.detail; | 
|     const { | 
|       originFiles | 
|     } = this.data; | 
|     originFiles.splice(index, 1); | 
|     this.setData({ | 
|       originFiles, | 
|     }); | 
|   }, | 
|   handleClick() { | 
|     console.log("handleClick"); | 
|   }, | 
|   handleAdd(e) { | 
|     console.log("handleAdd"); | 
|     const { | 
|       files | 
|     } = e.detail; | 
|     const { | 
|       originFiles | 
|     } = this.data; | 
|     this.setData({ | 
|       originFiles: [...originFiles, ...files], // 此时设置了 fileList 之后才会展示选择的图片 | 
|     }); | 
|   }, | 
|   /** | 
|    * 上传图片 | 
|    */ | 
|   onUpload() { | 
|     wx.uploadFile({ | 
|       url: 'https://example.weixin.qq.com/upload', // 仅为示例,非真实的接口地址 | 
|       filePath: file.url, | 
|       name: 'file', | 
|       formData: { | 
|         user: 'test' | 
|       }, | 
|       success: () => { | 
|         this.setData({ | 
|           [`fileList[${length}].status`]: 'done', | 
|         }); | 
|       }, | 
|     }); | 
|   }, | 
|   //按住按钮 | 
|   startHandel () { | 
|     this.setData({ | 
|      isShowVoiceMask:true | 
|     }) | 
|     console.log("开始录音") | 
|     wx.getRecorderManager().start({ | 
|      duration: 0 | 
|     }) | 
|    }, | 
|    //松开按钮 | 
|    endHandle () { | 
|     this.setData({ | 
|      isShowVoiceMask:false | 
|     }) | 
|     console.log("结束") | 
|     const recorderManager = wx.getRecorderManager() | 
|     //录音停止函数 | 
|     var that = this;   | 
|     wx.getRecorderManager().onStop((res) => { | 
|       const voiceTime =  Math.floor(res.duration/1000) | 
|       console.log('voiceTime',voiceTime); | 
|       that.setData({ | 
|         voiceTime | 
|       }) | 
|       console.log('res',res); | 
|      const { tempFilePath } = res; //这里松开按钮 会返回录音本地路径 | 
|      audio.src = tempFilePath | 
|      console.log(tempFilePath); | 
|      //上传录制的音频到服务器 | 
|      // wx.uploadFile({ | 
|      //  url: '接口地址' + api.voice, //接口地址 | 
|      //  name: 'file', //上传文件名 | 
|      //  filePath: tempFilePath, | 
|      //  success: function (res) { //后台返回给前端识别后的文字 | 
|      //   var model = res.data | 
|      //   var modeljson = JSON.parse(model) | 
|      //   if (modeljson.status_code == 500) { | 
|      //    wx.showToast({ | 
|      //     title: '语音转换失败', | 
|      //     image: '/assets/image/icon/fail@2x.png' | 
|      //    }) | 
|      //    return false; | 
|      //   } | 
|      //   if (modeljson.meta.status_code === 200 && !modeljson.data.err_msg) { | 
|      //    var saymessage = modeljson.data.message; | 
|      //    wx.setStorageSync('sayinfo', saymessage) | 
|      //    that.setData({ | 
|      //     inpvalue: saymessage | 
|      //    }) | 
|      //    setTimeout(() =>{ | 
|      //     wx.navigateTo({ | 
|      //      url: '../loding/loding' | 
|      //     }) | 
|           | 
|      //    },2000) | 
|      //    setTimeout(() => { | 
|      //     wx.hideLoading(); | 
|      //    }, 100) | 
|      //   } else if (modeljson.data.err_msg) { | 
|      //    wx.showToast({ | 
|      //     title: '请大声说话', | 
|      //     image: '/assets/image/icon/fail@2x.png' | 
|      //    }) | 
|      //    return false; | 
|      //   } | 
|      //  } | 
|      // }) | 
|     }) | 
|     //触发录音停止 | 
|     wx.getRecorderManager().stop() | 
|    }, | 
| // 播放 | 
| handlePlay(e){ | 
|   // 倒计时 | 
|   let time = this.data.voiceTime | 
|   audio.play() | 
|   let timer1 = -1,timer2 = -1,timer3 = -1,timer4 = -1,timer5 = -1,timer6 = -1; | 
|   // 第一次播放为0 第二次播放2秒钟 | 
|   timer6 = setInterval(()=>{ | 
|     console.log('时间',time); | 
|     if(time <= 0){ | 
|       this.setData({ | 
|         line2Opcity: 1, | 
|         line3Opcity: 1 | 
|       }) | 
|       clearInterval(timer6) | 
|       clearTimeout(timer2) | 
|       clearTimeout(timer3) | 
|       clearTimeout(timer4) | 
|       clearTimeout(timer5) | 
|       return | 
|     } | 
|     timer2 = setTimeout(()=>{ | 
|       console.log('timer2'); | 
|       this.setData({ | 
|         line2Opcity: 0, | 
|         line3Opcity: 0 | 
|       }) | 
|     },300) | 
|     timer3 = setTimeout(()=>{ | 
|       console.log('timer3'); | 
|         this.setData({ | 
|           line2Opcity: 1, | 
|           line3Opcity:0 | 
|         }) | 
|     },600) | 
|     timer4 = setTimeout(()=>{ | 
|       console.log('timer4'); | 
|         this.setData({ | 
|           line2Opcity: 1, | 
|           line3Opcity: 1 | 
|       }) | 
|     },900) | 
|     timer5 = setTimeout(()=>{ | 
|       console.log('timer5'); | 
|         this.setData({ | 
|           line2Opcity: 0, | 
|           line3Opcity: 0 | 
|         }) | 
|     },1200)     | 
|   },1200) | 
|   // 倒计时 | 
|   timer1 = setInterval(()=>{ | 
|     time--; | 
|     if(time <= 0){ | 
|       clearInterval(timer1) | 
|       return | 
|     } | 
| },1000) | 
|   | 
| } | 
|   | 
| }); |