摘要:本文出自官方論壇模塊通過(guò)封裝系統(tǒng)的錄音接口,能夠快速的為開發(fā)者提供一個(gè)完整的錄音功能。該模塊提供和版本,錄音方式及錄制的音頻格式也依賴于相關(guān)系統(tǒng)。
本文出自APICloud官方論壇
audioRecorder 模塊通過(guò)封裝系統(tǒng)的錄音接口,能夠快速的為開發(fā)者提供一個(gè)完整的錄音功能。
該模塊提供Android和iOS版本,錄音方式及錄制的音頻格式也依賴于相關(guān)系統(tǒng)。
需要注意的是:安卓跟ios所支持的格式是不一樣的,最好選擇aac格式,
如果不選擇acc格式你們就需要判斷此設(shè)備是ios還是安卓,(api.systemType使用這個(gè)可以獲取是安卓還是ios)
然后根據(jù)設(shè)備不同去配置對(duì)應(yīng)錄制音頻格式。
Android系統(tǒng)支持的錄制音頻格式為:amr、aac、3gp
iOS 系統(tǒng)支持的錄制音頻格式為:aac、wav
模塊文檔地址:https://docs.apicloud.com/Cli...
接口詳解:
startRecord接口:
一定需要詳細(xì)看下sampleRates跟format這倆個(gè)參數(shù)對(duì)應(yīng)配置,看自己需求去設(shè)置,不然配置錯(cuò)誤有可能出現(xiàn)未知錯(cuò)誤,或者報(bào)錯(cuò),一定看清楚format配置類型對(duì)應(yīng)的sampleRates取值范圍是否對(duì)應(yīng)了文檔要求;
var audioRecorder = api.require("audioRecorder");
var audioRecorder = api.require("audioRecorder");
audioRecorder.startRecord({
channel:2, //默認(rèn)是2 選項(xiàng)有倆個(gè) 1 單聲道 2 立體聲道,如果對(duì)于聲道沒有要求可以直接實(shí)際代碼可以不寫; sampleRates:16000, // 設(shè)置采樣率 aac 支持范圍(8000 - 96000) amr 支持 8000、16000 pcm 只支持 16000 savePath:"fs://test.amr", // 這塊是配置錄音存儲(chǔ)的位置 format:"amr" //設(shè)置音頻格式 aac (支持Android 4.1+ & iOS) pcm (支持Android & iOS) amr (僅支持Android) 3gp (僅支持Android) caf (僅支持 iOS) wav (僅支持 iOS) acm (僅支持 iOS)
}, function(ret, err){
console.log(JSON.stringify(ret));
});
復(fù)制代碼
getVolume接口:
獲取錄音的時(shí)時(shí)聲音大小,個(gè)人感覺如果配置了監(jiān)聽audioRecorder.addEventListener({name: "volume" 事件,這個(gè)接口可以不需要調(diào)用
var audioRecorder = api.require("audioRecorder");
audioRecorder.getVolume(function(ret){
console.log(JSON.stringify(ret));
});
復(fù)制代碼
addEventListener接口:
此接口是監(jiān)聽錄音時(shí)獲取時(shí)時(shí)聲音大小,這樣可以拿來(lái)作為錄音狀態(tài)喇叭大小的,此處樓主雖然獲取了,但是沒有去顯示這個(gè)功能;
樓主在監(jiān)聽這個(gè)接口調(diào)用getAttr接口獲取音頻時(shí)長(zhǎng),這樣就能配置錄音的時(shí)間進(jìn)度00:00:00
//監(jiān)聽聲音
audioRecorder.addEventListener({ name: "volume" }, function(ret) { console.warn(JSON.stringify(ret)); window.ListVue.volume = ret.volume; // 獲取錄音時(shí)間進(jìn)度 audioRecorder.getAttr({ path: window.ListVue.recording }, function(ret) { window.ListVue.Time = ret.duration; }); });
復(fù)制代碼
注意點(diǎn)2: 在關(guān)閉窗口的時(shí)候,需要調(diào)用停止錄音的接口,如果不調(diào)用會(huì)出現(xiàn)app閃退情況:
// 停止錄音
audioRecorder.stopRecord(function(ret) { console.warn(JSON.stringify(ret)); }); //重置按鈕關(guān)閉狀態(tài) this.Show = false; // 延遲關(guān)閉錄音界面返回錄音列表 setTimeout(function() { api.closeWin(); }, 300);
復(fù)制代碼
Demo整體結(jié)構(gòu)說(shuō)明截圖:
核心代碼截圖:
Demo最終效果圖:
無(wú)錄音文件時(shí)顯示:
有錄音文件時(shí)顯示:
錄音開始界面:
錄音暫停界面:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/104910.html
摘要:返回的字串如下我要聽三國(guó)演義這本書正在努力搜索中,請(qǐng)稍等我要聽三國(guó)演義這本書三國(guó)演義通過(guò)解析這段,可以得到類型,用于查詢書名,是表示行為是播放。 基于javascript用olamisdk實(shí)現(xiàn)web端語(yǔ)音識(shí)別語(yǔ)義理解(speex壓縮) 轉(zhuǎn)載請(qǐng)注明原文地址:傳送 olami 開放平臺(tái) sdk 除了支持語(yǔ)音識(shí)別功能外,更強(qiáng)大的在于支持語(yǔ)義理解功能,在 Android 平臺(tái)和 iOS 平臺(tái)都...
摘要:返回的字串如下我要聽三國(guó)演義這本書正在努力搜索中,請(qǐng)稍等我要聽三國(guó)演義這本書三國(guó)演義通過(guò)解析這段,可以得到類型,用于查詢書名,是表示行為是播放。 基于javascript用olamisdk實(shí)現(xiàn)web端語(yǔ)音識(shí)別語(yǔ)義理解(speex壓縮) 轉(zhuǎn)載請(qǐng)注明原文地址:傳送 olami 開放平臺(tái) sdk 除了支持語(yǔ)音識(shí)別功能外,更強(qiáng)大的在于支持語(yǔ)義理解功能,在 Android 平臺(tái)和 iOS 平臺(tái)都...
閱讀 2978·2021-11-11 16:55
閱讀 1007·2021-09-28 09:36
閱讀 3866·2021-09-22 15:22
閱讀 2309·2021-09-06 15:12
閱讀 1835·2021-08-19 10:55
閱讀 2935·2019-08-30 12:52
閱讀 562·2019-08-29 14:03
閱讀 1277·2019-08-29 12:27