引包
npm i js-audio-recorder
调用
import Recorder from 'js-audio-recorder';
let recorder = new Recorder();
实例属性
// 开始录音
recorder.start();
// 暂停录音
recorder.pause();
// 继续录音
recorder.resume()
// 结束录音
recorder.stop();
// 录音播放
recorder.play();
// 销毁录音实例,释放资源,fn为回调函数,
recorder.destroy(fn);
recorder = null;
下载功能
// 下载pcm文件
recorder.downloadPCM();
// 下载wav文件
recorder.downloadWAV();
// 重命名pcm文件,wav也支持
recorder.downloadPCM('重命名');
获取录音时长
// 回调持续输出时长
recorder.onprocess = function(duration) {
console.log(duration);
}
// 手动获取录音时长
console.log(recorder.duration);
更多API事件列表,请参考官方文档
http://recorder.api.zhuyuntao.cn/Recorder/API.html
补充说明
文档上未提及上传音频文件方法,只提供了下载方法,这里我补上
var form = new FormData(),
request = new XMLHttpRequest();
form.append("blob", recorder.getPCMBlob());
request.open("POST", this.domain+"/upload/audio/file", true);
request.onload = function (oEvent) {
console.log(oEvent);
};
request.send(form);
后端php接收
//上传录音文件
function upload_audio(Request $request){
/**@var $file UploadedFile*/
$file = $request->files->get("blob");
$fileName=rand(1000,999999).time().".pcm";
$file->move("./user_audio",$fileName);
//调用语音识别方法
$res=$this->speech($fileName);
}
}
总结
这是我见过最简单粗暴的录音包,感谢作者的创作,感谢使用者的分享,文章参考https://www.cnblogs.com/lljun/p/11535807.html