html部分
我是写了个录音的图片
点击之后弹出一个弹出层(仿了下qq的样式)
样式怎么写我就不赘述了大家都会
js部分
这是重点敲黑板!!!
创建实例
为了全局都好获取到,可以随时开始录音,随时停止录音,我把他扔进全局了
const recorderManager = uni.getRecorderManager();//创建一个录音实例
const innerAudioContext = uni.createInnerAudioContext();//用来播放的实例
// 为了防止苹果手机静音无法播放
uni.setInnerAudioOption({
obeyMuteSwitch: false
})
innerAudioContext.autoplay = true;
export default {
开始录音
this.timecount = '00:00:00';//初始化录音时间
this.hour = 0;
this.minute = 0;
this.second = 0;
this.getTimeIntervalplus();//封装的一个计时器,调用开始计时
const options = {
//参数
duration: 600000,
sampleRate: 44100,
numberOfChannels: 1,
encodeBitRate: 192000,
format: 'mp3',
frameSize: 50
}
recorderManager.start(options);
结束录音
需要限制最短时长的可以做下判断,我这边没写
recorderManager.stop();//结束录音
clearInterval(this.timer);//结束计时
播放录音
innerAudioContext.src = this.voicePath;//播放的地址(上面录的本地地址)
innerAudioContext.play();//播放
暂停播放
innerAudioContext.pause();//暂停播放
clearInterval(this.timer);//清除定时器
提交录音到后端
//结束录音提交录音
submitrecord: function() {
this.count += 1;//这是定义了一个全局的变量来防止多次提交
if (this.count == 1){
console.log