hera-cli
Version:
Hera Project Creator
119 lines (116 loc) • 2.86 kB
JavaScript
var util = require('../../../../util/util.js')
var playTimeInterval
var recordTimeInterval
Page({
data: {
recording: false,
playing: false,
hasRecord: false,
recordTime: 0,
playTime: 0,
formatedRecordTime: '00:00:00',
formatedPlayTime: '00:00:00'
},
onHide: function () {
if (this.data.playing) {
this.stopVoice()
} else if (this.data.recording) {
this.stopRecordUnexpectedly()
}
},
startRecord: function () {
this.setData({ recording: true })
var that = this
recordTimeInterval = setInterval(function () {
var recordTime = (that.data.recordTime += 1)
that.setData({
formatedRecordTime: util.formatTime(that.data.recordTime),
recordTime: recordTime
})
}, 1000)
wx.startRecord({
success: function (res) {
that.setData({
hasRecord: true,
tempFilePath: res.tempFilePath,
formatedPlayTime: util.formatTime(that.data.playTime)
})
},
complete: function () {
that.setData({ recording: false })
clearInterval(recordTimeInterval)
}
})
},
stopRecord: function () {
wx.stopRecord()
},
stopRecordUnexpectedly: function () {
var that = this
wx.stopRecord({
success: function () {
console.log('stop record success')
clearInterval(recordTimeInterval)
that.setData({
recording: false,
hasRecord: false,
recordTime: 0,
formatedRecordTime: util.formatTime(0)
})
}
})
},
playVoice: function () {
var that = this
playTimeInterval = setInterval(function () {
var playTime = that.data.playTime + 1
console.log('update playTime', playTime)
that.setData({
playing: true,
formatedPlayTime: util.formatTime(playTime),
playTime: playTime
})
}, 1000)
wx.playVoice({
filePath: this.data.tempFilePath,
success: function () {
clearInterval(playTimeInterval)
var playTime = 0
console.log('play voice finished')
that.setData({
playing: false,
formatedPlayTime: util.formatTime(playTime),
playTime: playTime
})
}
})
},
pauseVoice: function () {
clearInterval(playTimeInterval)
wx.pauseVoice()
this.setData({
playing: false
})
},
stopVoice: function () {
clearInterval(playTimeInterval)
this.setData({
playing: false,
formatedPlayTime: util.formatTime(0),
playTime: 0
})
wx.stopVoice()
},
clear: function () {
clearInterval(playTimeInterval)
wx.stopVoice()
this.setData({
playing: false,
hasRecord: false,
tempFilePath: '',
formatedRecordTime: util.formatTime(0),
recordTime: 0,
playTime: 0
})
}
})