+
96
-

回答

<template>
  <div>
    <button @click="startRecording">开始录音</button>
    <button @click="stopRecording">停止录音</button>
    <button @click="uploadRecording">上传录音</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      recorderManager: null,
      tempFilePath: null
    };
  },
  created() {
    this.recorderManager = uni.getRecorderManager();
    
    // 监听录音完成事件
    this.recorderManager.onStop(res => {
      console.log('录音完成', res);
      this.tempFilePath = res.tempFilePath;
    });
  },
  methods: {
    startRecording() {
      this.recorderManager.start({
        format: 'mp3', // 录音格式
        duration: 600000 // 录音时长,单位为毫秒
      });
    },
    stopRecording() {
      this.recorderManager.stop();
    },
    uploadRecording() {
      if (this.tempFilePath) {
        uni.uploadFile({
          url: 'https://yourserver.com/upload', // 上传服务器的URL
          filePath: this.tempFilePath, // 录音文件的本地路径
          name: 'file', // 服务器接受文件的字段名称
          success: uploadRes => {
            console.log('上传成功', uploadRes.data);
          },
          fail: uploadRes => {
            console.log('上传失败', uploadRes.errMsg);
          }
        });
      } else {
        console.log('请先录音并停止录音');
      }
    }
  }
};
</script>

网友回复

我知道答案,我要回答