wx.getRecorderManager小程序錄音管理
基礎(chǔ)庫(kù) 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í)長(zhǎng),單位 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è)小商店

立即掃碼關(guān)注

多門店/直營(yíng)/加盟連鎖管理系統(tǒng)