uniapp录音组件
uniapp录音组件的基本使用
uniapp提供了uni.getRecorderManager()API实现录音功能,适用于H5、小程序和App平台。创建一个录音管理器实例后,可通过方法控制录音流程。
const recorderManager = uni.getRecorderManager();
// 开始录音
recorderManager.start({
duration: 60000, // 录音时长(ms)
sampleRate: 44100, // 采样率
numberOfChannels: 1, // 录音通道数
format: 'mp3' // 音频格式(mp3/aac)
});
// 停止录音
recorderManager.stop();
录音事件监听
通过监听录音事件处理录音结果和状态变化。主要事件包括onStart、onStop、onError和onFrameRecorded。
recorderManager.onStart(() => {
console.log('录音开始');
});
recorderManager.onStop((res) => {
console.log('录音停止', res.tempFilePath);
// res.tempFilePath为临时文件路径
});
recorderManager.onError((res) => {
console.error('录音错误', res.errMsg);
});
录音参数配置
录音参数通过start方法的配置对象设置。常用参数包括音频格式、采样率和录音时长。

format:支持aac、mp3等格式(平台差异需注意)sampleRate:采样率可选8000/11025/12000/16000/22050/24000/32000/44100/48000frameSize:指定帧大小,单位KB
平台兼容性注意事项
不同平台对录音功能的支持存在差异:
- 微信小程序:需用户授权,格式默认为aac
- H5:依赖浏览器支持,部分参数可能不生效
- App:Android和iOS的实现方式不同,需测试真机效果
录音文件处理
录音完成后可通过uni.uploadFile上传或uni.saveFile保存到本地。

uni.uploadFile({
url: 'https://example.com/upload',
filePath: tempFilePath,
name: 'audio',
success(res) {
console.log('上传成功', res.data);
}
});
权限处理
在App端需配置录音权限(AndroidManifest.xml和Info.plist)。小程序端需在app.json中声明权限。
// 微信小程序app.json
{
"requiredPermissions": ["record"]
}
错误处理
常见错误包括权限拒绝、设备占用等,建议在onError中统一处理并给予用户提示。
recorderManager.onError((err) => {
uni.showToast({
title: '录音失败: ' + err.errMsg,
icon: 'none'
});
});
扩展功能实现
结合uni.createInnerAudioContext()可实现录音播放。通过onFrameRecorded可获取分片录音数据用于实时分析。
// 播放录音
const audioContext = uni.createInnerAudioContext();
audioContext.src = tempFilePath;
audioContext.play();






