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)
|
|
}
|
|
});
|