|
@@ -1,23 +1,33 @@
|
|
|
-//必须引入的核心
|
|
|
import Recorder from 'recorder-core';
|
|
|
//引入mp3格式支持文件;如果需要多个格式支持,把这些格式的编码引擎js文件放到后面统统引入进来即可
|
|
|
import 'recorder-core/src/engine/mp3';
|
|
|
import 'recorder-core/src/engine/mp3-engine';
|
|
|
//录制wav格式的用这一句就行
|
|
|
import 'recorder-core/src/engine/wav';
|
|
|
-
|
|
|
+// import { RecordType } from './type';
|
|
|
+var rec, wave, recBlob;
|
|
|
const record = {
|
|
|
RecordApp: null,
|
|
|
recBlob: null,
|
|
|
/**麦克风授权 */
|
|
|
getPermission: (fn) => {
|
|
|
+ rec = null;
|
|
|
+ wave = null;
|
|
|
+ recBlob = null;
|
|
|
+
|
|
|
const newRec = Recorder({
|
|
|
- type: 'wav',
|
|
|
+ //mp3格式,指定采样率hz、比特率kbps,其他参数使用默认配置;注意:是数字的参数必须提供数字,不要用字符串;需要使用的type类型,需提前把格式支持文件加载进来,比如使用wav格式需要提前加载wav.js编码引擎
|
|
|
+ type: "mp3",
|
|
|
bitRate: 16,
|
|
|
- sampleRate: 16000, //阿里采样率16000
|
|
|
- onProcess: function (buffers, powerLevel, duration, bufferSampleRate) {
|
|
|
- console.log(buffers);
|
|
|
- },
|
|
|
+ sampleRate: 16000,
|
|
|
+ onProcess: function (buffers, powerLevel, bufferDuration, bufferSampleRate, newBufferIdx, asyncEnd) {
|
|
|
+ //录音实时回调,大约1秒调用12次本回调
|
|
|
+ // document.querySelector(".recpowerx").style.width = powerLevel + "%";
|
|
|
+ // document.querySelector(".recpowert").innerText = formatMs(bufferDuration, 1) + " / " + powerLevel;
|
|
|
+
|
|
|
+ //可视化图形绘制
|
|
|
+ // wave.input(buffers[buffers.length - 1], powerLevel, bufferSampleRate);
|
|
|
+ }
|
|
|
});
|
|
|
//打开录音,获得权限
|
|
|
newRec.open(
|
|
@@ -49,9 +59,9 @@ const record = {
|
|
|
console.log('录音成功', blob, '时长:' + duration + 'ms');
|
|
|
if (blob) {
|
|
|
record.recBlob = blob;
|
|
|
- const formData = new FormData();
|
|
|
- formData.append('audio', blob);
|
|
|
- fn({ loading: true });
|
|
|
+ // const formData = new FormData();
|
|
|
+ // formData.append('audio', blob);
|
|
|
+ fn({ loading: true, blob });
|
|
|
}
|
|
|
/* eslint-enable */
|
|
|
record.RecordApp.close();
|