vue使用recorder-core.js實(shí)現(xiàn)錄音功能
更新時(shí)間:2023年07月28日 10:23:48 作者:開心市民小李???
這篇文章主要介紹了vue如何使用recorder-core.js實(shí)現(xiàn)錄音功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
下載組件
npm install recorder-core
封裝方法
record.ts
//必須引入的核心
import Recorder from 'recorder-core';
//引入mp3格式支持文件;如果需要多個(gè)格式支持,把這些格式的編碼引擎js文件放到后面統(tǒng)統(tǒng)引入進(jìn)來即可
import 'recorder-core/src/engine/mp3';
import 'recorder-core/src/engine/mp3-engine';
//錄制wav格式的用這一句就行
import 'recorder-core/src/engine/wav';
import { RecordType } from './type';
const record: RecordType = {
RecordApp: null,
recBlob: null,
/**麥克風(fēng)授權(quán) */
getPermission: (fn: Function | null) => {
const newRec = Recorder({
type: 'wav',
bitRate: 16,
sampleRate: 16000, //阿里采樣率16000
onProcess: function (buffers, powerLevel, duration, bufferSampleRate) {
console.log(buffers);
},
});
//打開錄音,獲得權(quán)限
newRec.open(
() => {
record.RecordApp = newRec;
fn({ status: 'success', data: '開啟成功' });
},
(msg, isUserNotAllow) => {
//用戶拒絕了錄音權(quán)限,或者瀏覽器不支持錄音
fn({ status: 'fail', data: msg });
console.log((isUserNotAllow ? 'UserNotAllow,' : '') + '無法錄音:' + msg);
}
);
},
/**開始錄音 */
startRecorder: () => {
if (record.RecordApp && Recorder.IsOpen()) {
record.RecordApp.start();
}
},
/** 停止錄音 */
stopRecorder: (fn: Function | null) => {
try {
if (!record) {
console.error('未打開錄音');
return;
}
record.RecordApp.stop((blob, duration) => {
console.log('錄音成功', blob, '時(shí)長:' + duration + 'ms');
if (blob) {
record.recBlob = blob;
const formData = new FormData();
formData.append('audio', blob);
fn({ loading: true });
}
/* eslint-enable */
record.RecordApp.close();
record.RecordApp = null;
});
} catch (err) {
fn({ err: err });
console.error('結(jié)束錄音出錯(cuò):' + err);
record.RecordApp.close();
record.RecordApp = null;
}
},
/**關(guān)閉錄音,釋放麥克風(fēng)資源 */
destroyRecorder: () => {
if (record.RecordApp) {
record.RecordApp.close();
record.RecordApp = null;
}
},
/**暫停 */
pauseRecorder: () => {
if (record.RecordApp) {
record.RecordApp.pause();
}
},
/**恢復(fù)繼續(xù)錄音 */
resumeRecorder: () => {
if (record.RecordApp) {
record.RecordApp.resume();
}
},
};
export default record;調(diào)用
import record from '/@/utils/record/record';
/**初始化 */
function init() {
record.getPermission(function (permiss) {
if (permiss.status == 'fail') {
createMessage.warning(permiss.data);
} else {
record.startRecorder();
state.confLoading = true;
}
});
}
/**結(jié)束錄音 */
function stopRec() {
state.loading = true;
state.confLoading = true;
record.stopRecorder(function (res) {
/**處理 */
})
}到此這篇關(guān)于vue使用recorder-core.js實(shí)現(xiàn)錄音功能的文章就介紹到這了,更多相關(guān)vue recorder-core.js錄音內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
- vue實(shí)現(xiàn)PC端錄音功能的實(shí)例代碼
- vue使用recorder.js實(shí)現(xiàn)錄音功能
- Vue實(shí)現(xiàn)懸浮框自由移動(dòng)+錄音功能的示例代碼
- vue實(shí)現(xiàn)錄音功能js-audio-recorder帶波浪圖效果的示例
- vue使用js-audio-recorder實(shí)現(xiàn)錄音功能
- vue實(shí)現(xiàn)錄音并轉(zhuǎn)文字功能包括PC端web手機(jī)端web(實(shí)現(xiàn)過程)
- Vue如何使用js-audio-recorder插件實(shí)現(xiàn)錄音功能并將文件轉(zhuǎn)成wav上傳
相關(guān)文章
vue使用better-scroll實(shí)現(xiàn)滑動(dòng)以及左右聯(lián)動(dòng)
這篇文章主要介紹了vue使用better-scroll實(shí)現(xiàn)滑動(dòng)以及左右聯(lián)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06
小白教程|一小時(shí)上手最流行的前端框架vue(推薦)
這篇文章主要介紹了前端框架vue,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
關(guān)于vue屬性使用和不使用冒號的區(qū)別說明
這篇文章主要介紹了關(guān)于vue屬性使用和不使用冒號的區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
vue封裝全局彈窗警告組件this.$message.success問題
這篇文章主要介紹了vue封裝全局彈窗警告組件this.$message.success問題,具有很的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
vue 如何從單頁應(yīng)用改造成多頁應(yīng)用
這篇文章主要介紹了vue 如何從單頁應(yīng)用改造成多頁應(yīng)用,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下2020-10-10

