注冊

wx.getRecorderManager小程序錄音管理

2017-12-08
導(dǎo)讀:基礎(chǔ)庫 1.6.0 開始支持,低版本需做 兼容處理 獲取 全局唯一 的錄音管理器 recorderManager 。 recorderManager recorderManager 對(duì)象的方法列表: 方法 參數(shù) 說明 start options 開始錄音 pause 暫停錄音...

基礎(chǔ)庫 1.6.0 開始支持,低版本需做兼容處理

獲取全局唯一的錄音管理器 recorderManager。

recorderManager

recorderManager 對(duì)象的方法列表:

方法 參數(shù) 說明
start options 開始錄音
pause   暫停錄音
resume   繼續(xù)錄音
stop   停止錄音
onStart callback 錄音開始事件
onPause callback 錄音暫停事件
onStop callback 錄音停止事件,會(huì)回調(diào)文件地址
onFrameRecorded callback 已錄制完指定幀大小的文件,會(huì)回調(diào)錄音分片結(jié)果數(shù)據(jù)。如果設(shè)置了 frameSize ,則會(huì)回調(diào)此事件
onError callback 錄音錯(cuò)誤事件, 會(huì)回調(diào)錯(cuò)誤信息

start(options) 說明:

屬性 類型 必填 說明
duration Number 指定錄音的時(shí)長,單位 ms ,如果傳入了合法的 duration ,在到達(dá)指定的 duration 后會(huì)自動(dòng)停止錄音,最大值 600000(10 分鐘),默認(rèn)值 60000(1 分鐘)
sampleRate Number 采樣率,有效值 8000/16000/44100
numberOfChannels Number 錄音通道數(shù),有效值 1/2
encodeBitRate Number 編碼碼率,有效值見下表格
format String 音頻格式,有效值 aac/mp3
frameSize Number 指定幀大小,單位 KB。傳入 frameSize 后,每錄制指定幀大小的內(nèi)容后,會(huì)回調(diào)錄制的文件內(nèi)容,不指定則不會(huì)回調(diào)。暫僅支持 mp3 格式。

其中,采樣率和碼率有一定要求,具體有效值如下:

采樣率 編碼碼率
8000 16000 ~ 48000
11025 16000 ~ 48000
12000 24000 ~ 64000
16000 24000 ~ 96000
22050 32000 ~ 128000
24000 32000 ~ 128000
32000 48000 ~ 192000
44100 64000 ~ 320000
48000 64000 ~ 320000

onStop(callback) 回調(diào)結(jié)果說明:

屬性 類型 說明
tempFilePath String 錄音文件的臨時(shí)路徑

onFrameRecorded(callback) 回調(diào)結(jié)果說明:

屬性 類型 說明
frameBuffer ArrayBuffer 錄音分片結(jié)果數(shù)據(jù)
isLastFrame Boolean 當(dāng)前幀是否正常錄音結(jié)束前的最后一幀

onError(callback) 回調(diào)結(jié)果說明:

屬性 類型 說明
errMsg String 錯(cuò)誤信息

示例代碼:

const recorderManager = wx.getRecorderManager()

recorderManager.onStart(() => {
  console.log('recorder start')
})
recorderManager.onResume(() => {
  console.log('recorder resume')
})
recorderManager.onPause(() => {
  console.log('recorder pause')
})
recorderManager.onStop((res) => {
  console.log('recorder stop', res)
  const { tempFilePath } = res
})
recorderManager.onFrameRecorded((res) => {
  const { frameBuffer } = res
  console.log('frameBuffer.byteLength', frameBuffer.byteLength)
})

const options = {
  duration: 10000,
  sampleRate: 44100,
  numberOfChannels: 1,
  encodeBitRate: 192000,
  format: 'aac',
  frameSize: 50
}

recorderManager.start(options)
重磅推薦:小程序開店目錄

第一部分:小商店是什么

第二部分:如何開通一個(gè)小商店

第三部分:如何登錄小商店

第四部分:開店任務(wù)常見問題

第五部分:小商店可以賣什么

第六部分:HiShop小程序特色功能

第七部分:小程序直播

第八部分:小程序收貨/物流

第九部分:小程序怎么結(jié)算

第十部分:小程序客服

第十一部分:電商創(chuàng)業(yè)

第十二部分:小程序游戲開發(fā)