uniapp getRecordManager如何使用
在uniapp中使用getRecordManager时遇到了问题,具体操作流程不太清楚。请问如何正确初始化并使用这个API?能否提供一个完整的示例代码,包括开始录音、暂停和停止录音的实现方法?另外,这个API在不同平台(iOS/Android)上的兼容性如何?
2 回复
在uniapp中,使用uni.getRecordManager()获取录音管理器实例,然后调用start()、stop()等方法控制录音。示例:
const recordManager = uni.getRecordManager()
recordManager.start({
duration: 60000
})
在 UniApp 中,getRecordManager 用于管理录音功能,支持开始、暂停、继续和停止录音,并监听录音状态变化。以下是基本使用方法:
1. 获取录音管理器
const recordManager = uni.getRecorderManager();
2. 监听录音事件
recordManager.onStart(() => {
console.log('录音开始');
});
recordManager.onPause(() => {
console.log('录音暂停');
});
recordManager.onStop((res) => {
console.log('录音停止', res.tempFilePath); // 录音文件临时路径
});
recordManager.onError((res) => {
console.log('录音错误', res.errMsg);
});
3. 控制录音
// 开始录音
recordManager.start({
duration: 60000, // 录音时长(ms),默认1分钟
sampleRate: 44100, // 采样率
numberOfChannels: 1, // 声道数
encodeBitRate: 192000, // 编码码率
format: 'mp3' // 音频格式
});
// 暂停录音
recordManager.pause();
// 继续录音
recordManager.resume();
// 停止录音
recordManager.stop();
4. 完整示例
export default {
methods: {
startRecord() {
const recorder = uni.getRecorderManager();
recorder.onStop((res) => {
uni.showToast({
title: '录音完成',
icon: 'success'
});
console.log('文件路径:', res.tempFilePath);
});
recorder.start({
duration: 10000, // 10秒
format: 'mp3'
});
},
stopRecord() {
uni.getRecorderManager().stop();
}
}
}
注意事项:
- 需在
manifest.json中配置录音权限 - 真机调试时需授权麦克风权限
- 临时路径在应用关闭后可能失效,需及时处理文件
通过以上方法即可在 UniApp 中实现录音功能管理。

