更新记录
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.vue、uni_modules/my-recorder/demo/record-demo.uvue
降级策略
onFrameRecorded:当前在 pcm/wav 模式下已支持真实 PCM 分片回调,base64 字段为每个分片的 16bit PCM 数据。
- 当请求
pcm 时,onStop 的 tempFilePath 会返回自动生成的 .wav 预览文件,rawTempFilePath 返回真实的 .pcm 原始文件。
format:当前真正实现的是 pcm/wav;当请求 aac/mp3 时会触发 1107613 兼容提示,并自动降级为 wav 文件输出。
disableFileOutput:当前不支持,仍会直接报错。
平台兼容说明
- Android 5.0+:使用
AudioRecord,支持 pause/resume、pcm/wav、onFrameRecorded。
- iOS 12.0+:使用
AVAudioEngine,支持 pause/resume、pcm/wav、onFrameRecorded。
aac/mp3 目前仍是兼容降级策略,不是原生真实编码输出。
调用建议
- 推荐优先使用
wav 或 pcm 验证实时帧回调与流式处理。
- 如果后续业务必须得到真正的
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 文件,便于你做二次处理或上传。