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 中实现录音功能管理。

回到顶部