APICloud開發者進階之路 |audioRecorder錄音模塊Demo

本文出自APICloud官方論壇

audioRecorder 模塊通過封裝系統的錄音接口,能夠快速的爲開發者提供一個完整的錄音功能。
該模塊提供Android和iOS版本,錄音方式及錄製的音頻格式也依賴於相關係統。

需要注意的是:安卓跟ios所支持的格式是不一樣的,最好選擇aac格式,
如果不選擇acc格式你們就需要判斷此設備是ios還是安卓,(api.systemType使用這個可以獲取是安卓還是ios)
然後根據設備不同去配置對應錄製音頻格式。

Android系統支持的錄製音頻格式爲:amr、aac、3gp

iOS 系統支持的錄製音頻格式爲:aac、wav

模塊文檔地址:https://docs.apicloud.com/Client-API/Func-Ext/audioRecorder

接口詳解:
startRecord接口:
一定需要詳細看下sampleRates跟format這倆個參數對應配置,看自己需求去設置,不然配置錯誤有可能出現未知錯誤,或者報錯,一定看清楚format配置類型對應的sampleRates取值範圍是否對應了文檔要求;
var audioRecorder = api.require('audioRecorder');
var audioRecorder = api.require('audioRecorder');
audioRecorder.startRecord({
channel:2, //默認是2 選項有倆個 1 單聲道 2 立體聲道,如果對於聲道沒有要求可以直接實際代碼可以不寫;
sampleRates:16000, // 設置採樣率 aac 支持範圍(8000 - 96000) amr 支持 8000、16000 pcm 只支持 16000
savePath:'fs://test.amr', // 這塊是配置錄音存儲的位置
format:'amr' //設置音頻格式 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));
});

複製代碼
getVolume接口:
獲取錄音的時時聲音大小,個人感覺如果配置了監聽audioRecorder.addEventListener({name: 'volume' 事件,這個接口可以不需要調用
var audioRecorder = api.require('audioRecorder');
audioRecorder.getVolume(function(ret){
console.log(JSON.stringify(ret));
});
複製代碼
addEventListener接口:
此接口是監聽錄音時獲取時時聲音大小,這樣可以拿來作爲錄音狀態喇叭大小的,此處樓主雖然獲取了,但是沒有去顯示這個功能;
樓主在監聽這個接口調用getAttr接口獲取音頻時長,這樣就能配置錄音的時間進度00:00:00
//監聽聲音
audioRecorder.addEventListener({
name: 'volume'
}, function(ret) {
console.warn(JSON.stringify(ret));
window.ListVue.volume = ret.volume;
// 獲取錄音時間進度
audioRecorder.getAttr({
path: window.ListVue.recording
}, function(ret) {
window.ListVue.Time = ret.duration;
});
});
複製代碼

注意點2: 在關閉窗口的時候,需要調用停止錄音的接口,如果不調用會出現app閃退情況:
// 停止錄音
audioRecorder.stopRecord(function(ret) {
console.warn(JSON.stringify(ret));
});
//重置按鈕關閉狀態
this.Show = false;
// 延遲關閉錄音界面返回錄音列表
setTimeout(function() {
api.closeWin();
}, 300);
複製代碼

Demo整體結構說明截圖:
APICloud開發者進階之路 |audioRecorder錄音模塊Demo

核心代碼截圖:
APICloud開發者進階之路 |audioRecorder錄音模塊Demo

APICloud開發者進階之路 |audioRecorder錄音模塊Demo

APICloud開發者進階之路 |audioRecorder錄音模塊Demo

Demo最終效果圖:

無錄音文件時顯示:
APICloud開發者進階之路 |audioRecorder錄音模塊Demo
有錄音文件時顯示:
APICloud開發者進階之路 |audioRecorder錄音模塊Demo

錄音開始界面:
APICloud開發者進階之路 |audioRecorder錄音模塊Demo

錄音暫停界面:
APICloud開發者進階之路 |audioRecorder錄音模塊Demo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章