• uni.getRecorderManager()

    uni.getRecorderManager()

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

    平台差异说明

    5+AppH5微信小程序支付宝小程序百度小程序头条小程序
    xx

    recorderManager 对象的方法列表

    方法参数说明平台差异说明
    startoptions开始录音
    pause暂停录音
    resume继续录音
    stop停止录音
    onStartcallback录音开始事件
    onPausecallback录音暂停事件
    onStopcallback录音停止事件,会回调文件地址
    onFrameRecordedcallback已录制完指定帧大小的文件,会回调录音分片结果数据。如果设置了 frameSize ,则会回调此事件5+App 暂不支持
    onErrorcallback录音错误事件, 会回调错误信息

    start(options) 说明

    属性类型必填说明
    durationNumber指定录音的时长,单位 ms ,如果传入了合法的 duration ,在到达指定的 duration 后会自动停止录音,最大值 600000(10 分钟),默认值 60000(1 分钟)
    sampleRateNumber采样率,有效值 8000/16000/44100
    numberOfChannelsNumber录音通道数,有效值 1/2
    encodeBitRateNumber编码码率,有效值见下表格
    formatString音频格式,有效值 aac/mp3
    frameSizeString指定帧大小,单位 KB。传入 frameSize 后,每录制指定帧大小的内容后,会回调录制的文件内容,不指定则不会回调。暂仅支持 mp3 格式。

    其中,采样率和码率有一定要求,具体有效值如下:

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

    onStop(callback) 回调结果说明

    属性类型说明
    tempFilePathString录音文件的临时路径

    onFrameRecorded(callback) 回调结果说明

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

    onError(callback) 回调结果说明

    属性类型说明
    errMsgString错误信息

    示例

    1. <template>
    2. <view>
    3. <button @tap="startRecord">开始录音</button>
    4. <button @tap="endRecord">停止录音</button>
    5. <button @tap="playVoice">播放录音</button>
    6. </view>
    7. </template>
    1. const recorderManager = uni.getRecorderManager();
    2. const innerAudioContext = uni.createInnerAudioContext();
    3. innerAudioContext.autoplay = true;
    4. export default {
    5. data: {
    6. text: 'uni-app',
    7. voicePath: ''
    8. },
    9. onLoad() {
    10. let self = this;
    11. recorderManager.onStop(function (res) {
    12. console.log('recorder stop' + JSON.stringify(res));
    13. self.voicePath = res.tempFilePath;
    14. });
    15. },
    16. methods: {
    17. startRecord() {
    18. console.log('开始录音');
    19. recorderManager.start();
    20. },
    21. endRecord() {
    22. console.log('录音结束');
    23. recorderManager.stop();
    24. },
    25. playVoice() {
    26. console.log('播放录音');
    27. if (this.voicePath) {
    28. innerAudioContext.src = this.voicePath;
    29. innerAudioContext.play();
    30. }
    31. }
    32. }
    33. }

    发现错误?想参与编辑?在 GitHub 上编辑此页面!