更新记录
0.1.3(2026-07-17)
1、新增微信小程序支持,并补齐鸿蒙原生 AudioCapturer 录音实现
2、鸿蒙新增 onFrameRecorded、pcm/wav 预览输出与 rawTempFilePath
3、新增火山语音转文字完整示例demo,传入豆包流式语音识别大模型,key APP ID和 AccessToken直接无缝接入
0.1.2(2026-07-16)
1、增加 火山语音转文字 组件demo
0.1.1(2026-05-20)
1.增加demo页面
查看更多平台兼容性
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、AndroidAudioRecord实现、iOSAVAudioEngine实现,并拉齐微信小程序与鸿蒙系统录音管理器。 - 已支持权限申请、设置页跳转、录音状态查询、临时文件清理;其中 Android/iOS 额外提供实时分贝回调、
pcm/wav文件落盘与增强帧回调。 - 示例调用页:
uni_modules/my-recorder/demo/record-demo.vue、uni_modules/my-recorder/demo/record-demo.uvue
降级策略
onFrameRecorded:Android/iOS 在pcm/wav模式下已支持真实 PCM 分片回调,base64字段为每个分片的 16bit PCM 数据;微信小程序走系统原生分片能力。- 当请求
pcm时,Android/iOS 的onStop会返回自动生成的.wav预览文件,rawTempFilePath返回真实的.pcm原始文件。 format:Android/iOS 当前真正实现的是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。 - 微信小程序:代理系统
uni.getRecorderManager(),支持系统原生aac/mp3/pcm/wav,并保留插件统一的requestPermission、状态查询与错误透传接口。 - 鸿蒙:改为插件内原生
AudioCapturer实现,支持pause/resume、pcm/wav、onFrameRecorded,行为与 Android/iOS 增强实现对齐。 aac/mp3目前仍是兼容降级策略,不是原生真实编码输出。
新增平台说明
- 微信小程序平台保留
onFrameRecorded原生能力。 - 鸿蒙平台已补齐
onFrameRecorded、rawTempFilePath、previewFormat/rawFormat,并按当前 App 端策略在请求aac/mp3时降级为wav输出。 onDecibelChange目前在 Android/iOS/鸿蒙原生增强实现中有效,微信小程序暂不提供系统分贝回调。
调用建议
- 推荐优先使用
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文件,便于你做二次处理或上传。

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 38
赞赏 0
下载 12521086
赞赏 1943
赞赏
京公网安备:11010802035340号