You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.2 KiB
67 lines
1.2 KiB
import UNI_APP from '@/.env.js';
|
|
|
|
const rc = uni.getRecorderManager();
|
|
// 录音开始时间
|
|
let startTime = null;
|
|
let checkIsEnable = ()=>{
|
|
return true;
|
|
}
|
|
|
|
let start = () => {
|
|
return new Promise((resolve, reject) => {
|
|
rc.onStart(() => {
|
|
startTime = new Date();
|
|
resolve()
|
|
});
|
|
rc.onError((e) => {
|
|
console.log(e);
|
|
reject(e)
|
|
})
|
|
rc.start({
|
|
format: 'mp3' // 录音格式,可选值:aac/mp3
|
|
});
|
|
})
|
|
}
|
|
|
|
let close = () => {
|
|
rc.stop();
|
|
}
|
|
|
|
let upload = () => {
|
|
return new Promise((resolve, reject) => {
|
|
rc.onStop((wavFile, a, b) => {
|
|
uni.uploadFile({
|
|
url: UNI_APP.BASE_URL + '/file/upload',
|
|
header: {
|
|
accessToken: uni.getStorageSync("loginInfo").accessToken
|
|
},
|
|
filePath: wavFile.tempFilePath,
|
|
name: 'file',
|
|
success: (res) => {
|
|
let r = JSON.parse(res.data);
|
|
if (r.code != 200) {
|
|
reject(r.message);
|
|
} else {
|
|
const duration = (new Date().getTime() - startTime.getTime()) /
|
|
1000
|
|
const data = {
|
|
duration: Math.round(duration),
|
|
url: r.data
|
|
}
|
|
resolve(data);
|
|
}
|
|
},
|
|
fail: (e) => {
|
|
reject(e);
|
|
}
|
|
})
|
|
});
|
|
})
|
|
}
|
|
|
|
export {
|
|
checkIsEnable,
|
|
start,
|
|
close,
|
|
upload
|
|
}
|