更新记录

0.1.1(2026-05-20)

1.增加demo页面

0.1.0(2026-05-20)

1.第一次发版


平台兼容性

uni-app(4.34)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × 5.0
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × - × × - - -

uni-app x(4.61)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × 5.0 ×

my-recorder

当前能力

  • 已完成 uni.getRecorderManager 风格 API、Android AudioRecord 实现、iOS AVAudioEngine 实现。
  • 已支持权限申请、设置页跳转、录音状态查询、临时文件清理、实时分贝回调、pcm/wav 文件落盘。
  • 示例调用页:uni_modules/my-recorder/demo/record-demo.vueuni_modules/my-recorder/demo/record-demo.uvue

降级策略

  • onFrameRecorded:当前在 pcm/wav 模式下已支持真实 PCM 分片回调,base64 字段为每个分片的 16bit PCM 数据。
  • 当请求 pcm 时,onStoptempFilePath 会返回自动生成的 .wav 预览文件,rawTempFilePath 返回真实的 .pcm 原始文件。
  • format:当前真正实现的是 pcm/wav;当请求 aac/mp3 时会触发 1107613 兼容提示,并自动降级为 wav 文件输出。
  • disableFileOutput:当前不支持,仍会直接报错。

平台兼容说明

  • Android 5.0+:使用 AudioRecord,支持 pause/resumepcm/wavonFrameRecorded
  • iOS 12.0+:使用 AVAudioEngine,支持 pause/resumepcm/wavonFrameRecorded
  • aac/mp3 目前仍是兼容降级策略,不是原生真实编码输出。

调用建议

  • 推荐优先使用 wavpcm 验证实时帧回调与流式处理。
  • 如果后续业务必须得到真正的 aac/mp3 文件,需要再补原生编码器链路。

onFrameRecorded 示例

import { getRecorderManager } from '@/uni_modules/my-recorder'

const recorderManager = getRecorderManager()

recorderManager.onFrameRecorded((res) => {
    const frameBuffer = res.frameBuffer || (res.base64 ? uni.base64ToArrayBuffer(res.base64) : null)
    if (!frameBuffer) return

    const byteLength = frameBuffer.byteLength
    console.log('frame bytes =>', byteLength, 'isLastFrame =>', res.isLastFrame)

    // 这里可以把 PCM 分片送给语音识别、波形分析或流式上传
})

recorderManager.start({
    format: 'pcm',
    frameSize: 16,
    sampleRate: 16000,
    numberOfChannels: 1,
    detectDecibel: true
})
  • format: 'pcm' 时,实时帧回调最直观;tempFilePath 会返回可播放的 .wav 预览文件。
  • rawTempFilePath 会保留真实 .pcm 文件,便于你做二次处理或上传。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。