在web项目上直接使用js-audio-recorder插件时由于使用的是在某个页面引用插件,会导致重复新建AudioContext,这样会出现录音上限,录制几次就会报错,不能再往下录音,这是我们最好将其提到最外层App.vue中,这样项目只会新建一次。最后附上js-audio-recorde使用方法。
import RecorderJs from 'js-audio-recorder';
let recorderjs = new RecorderJs({
sampleBits: 16, // 采样位数,支持 8 或 16,默认是16
sampleRate: 16000, // 采样率,支持 11025、16000、22050、24000、44100、48000,根据浏览器默认值,我的chrome是48000
numChannels: 1, // 声道,支持 1 或 2, 默认是1
compiling: false,
});
//开始录音
recorderjs && recorderjs.start();
//停止录音
recorderjs && recorderjs.stop();
//获取录音文件
var mp3Blob = recorderjs.getWAVBlob();
// 将录音文件路径放到audio上
this.recorderjsurl = recorderjs.getWAVBlob()
this.$refs.myaudio.src= window.URL.createObjectURL(this.recorderjsurl);
//销毁当前录音后才可以重新录制。
recorderjs.destroy()