录音

优质
小牛编辑
132浏览
2023-12-01

RecorderManager jd.getRecorderManager()

获取全局唯一的录音管理器 RecorderManager。

返回值

RecorderManager

RecorderManager

全局唯一的录音管理器

方法

RecorderManager.start(Object object)

开始录音

参数

Object object

属性类型默认值必填说明
durationnumber60000录音的时长,单位 ms,最大值 600000(10 分钟)
sampleRatenumber8000采样率
numberOfChannelsnumber2录音通道数
encodeBitRatenumber48000编码码率,有效值见下表格
formatstringaac音频格式
frameSizenumber指定帧大小,单位 KB。传入 frameSize 后,每录制指定帧大小的内容后,会回调录制的文件内容,不指定则不会回调。暂仅支持 mp3 格式。

object.sampleRate 的合法值

说明
80008000 采样率
1102511025 采样率
1200012000 采样率
1600016000 采样率
2205022050 采样率
2400024000 采样率
3200032000 采样率
4410044100 采样率
4800048000 采样率

object.numberOfChannels 的合法值

说明
11 个通道
22 个通道

object.format 的合法值

说明
mp3mp3 格式
aacaac 格式
wavwav 格式
PCMpcm 格式

采样率与编码码率限制 每种采样率有对应的编码码率范围有效值,设置不合法的采样率或编码码率会导致录音失败,具体对应关系如下表。

采样率编码码率
800016000 ~ 48000
1102516000 ~ 48000
1200024000 ~ 64000
1600024000 ~ 96000
2205032000 ~ 128000
2400032000 ~ 128000
3200048000 ~ 192000
4410064000 ~ 320000
4800064000 ~ 320000

RecorderManager.pause()

暂停录音

RecorderManager.resume()

继续录音

RecorderManager.stop()

停止录音

RecorderManager.onStart(function callback)

监听录音开始事件

参数

function callback 录音开始事件的回调函数

RecorderManager.onResume(function callback)

监听录音继续事件

参数

function callback 录音继续事件的回调函数

RecorderManager.onPause(function callback)

监听录音暂停事件

参数

function callback 录音暂停事件的回调函数

RecorderManager.onStop(function callback)

监听录音结束事件

参数

function callback 录音结束事件的回调函数

参数 Object res

属性类型说明
tempFilePathstring录音文件的临时路径 (本地路径)
durationnumber录音总时长,单位:ms
fileSizenumber录音文件大小,单位:Byte

RecorderManager.onFrameRecorded(function callback)

监听已录制完指定帧大小的文件事件。如果设置了 frameSize,则会回调此事件。

参数

function callback 已录制完指定帧大小的文件事件的回调函数

参数 Object res

属性类型说明
frameBufferArrayBuffer录音分片数据
isLastFrameboolean当前帧是否正常录音结束前的最后一帧

RecorderManager.onError(function callback)

监听录音错误事件

参数

function callback 录音错误事件的回调函数

参数 Object res

属性类型说明
errMsgstring错误信息

示例代码

const recorderManager = jd.getRecorderManager()
    recorderManager.onStart(() => {
        console.log('recorder start')
    })
    recorderManager.onPause(() => {
        console.log('recorder pause')
    })
    recorderManager.onStop((res) => {
        console.log('recorder stop', res)
    const { tempFilePath } = res
    })
    recorderManager.onFrameRecorded((res) => {
        console.log('frameBuffer', res)
    })
    const options = {
        duration: 6000,
        sampleRate: 44100,
        numberOfChannels: 2,
        encodeBitRate: 192000,
        format: 'mp3',
        frameSize: 30
    }
    recorderManager.start(options)