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

本文出自APICloud官方論壇ios

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

須要注意的是:安卓跟ios所支持的格式是不同的,最好選擇aac格式, 若是不選擇acc格式大家就須要判斷此設備是ios仍是安卓,(api.systemType使用這個能夠獲取是安卓仍是ios) 而後根據設備不一樣去配置對應錄製音頻格式。app

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

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

模塊文檔地址:docs.apicloud.com/Client-API/…orm

接口詳解: 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)); });cdn

複製代碼 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; }); }); 複製代碼blog

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

Demo總體結構說明截圖:事件

核心代碼截圖:

Demo最終效果圖:

無錄音文件時顯示:

有錄音文件時顯示:

錄音開始界面:

錄音暫停界面:

相關文章
相關標籤/搜索