uni-app 插件需求 获取APP录音功能并获取音频数据

发布于 1周前 作者 vueper 来自 Uni-App

uni-app 插件需求 获取APP录音功能并获取音频数据

支持ios和android,实现录音,并获取音频数据,用来做音乐律动

6 回复

是指分贝值吗?我有这个插件


对,是分贝值,实时获取分贝值

我使用了你的录音的插件,发现是1秒返回一次分贝值,不能满足我的需求

可以做,联系QQ:1804945430

在uni-app中,实现APP录音功能并获取音频数据,通常需要使用H5+ API中的RecorderManager对象。以下是一个简单的代码示例,展示了如何实现这一功能。

首先,确保你的uni-app项目已经正确配置了H5+ API的权限。在manifest.json中,你需要在app-plusdistribute下的plugins里添加必要的权限,比如RecordAudio

接下来,是代码实现部分:

<template>
  <view>
    <button @click="startRecording">开始录音</button>
    <button @click="stopRecording" :disabled="!isRecording">停止录音</button>
    <audio :src="audioSrc" v-if="audioSrc" controls></audio>
  </view>
</template>

<script>
export default {
  data() {
    return {
      isRecording: false,
      recorderManager: null,
      audioSrc: null,
    };
  },
  methods: {
    startRecording() {
      if (this.isRecording) return;
      this.isRecording = true;
      this.recorderManager = plus.recorder.createRecorder({
        audioSrc: '_doc/record/', // 保存路径
        audioFormat: 'mp3', // 音频格式
        sampleRate: 44100, // 采样率
        bitRate: 96000, // 码率
      });

      this.recorderManager.start({
        success: () => {
          console.log('录音开始');
        },
        fail: (err) => {
          console.error('录音失败', err);
        },
      });
    },
    stopRecording() {
      if (!this.isRecording) return;
      this.isRecording = false;
      this.recorderManager.stop({
        success: (res) => {
          console.log('录音停止', res);
          this.audioSrc = '_www/' + res.files[0]; // 注意路径转换,_doc转为_www可访问
        },
        fail: (err) => {
          console.error('停止录音失败', err);
        },
      });
    },
  },
  onUnload() {
    if (this.recorderManager) {
      this.recorderManager.destroy();
    }
  },
};
</script>

<style>
/* 添加一些简单的样式 */
button {
  margin: 10px;
}
audio {
  margin-top: 20px;
}
</style>

在这个示例中,我们定义了两个按钮用于控制录音的开始和停止,以及一个用于播放录音的<audio>元素。当点击“开始录音”按钮时,会创建并启动RecorderManager对象进行录音;当点击“停止录音”按钮时,会停止录音并获取录音文件的路径,然后将其设置为<audio>元素的src属性以播放录音。

请注意,录音文件的保存路径和访问路径在不同的平台上可能有所不同。在真机调试时,你可能需要根据实际情况调整路径。此外,还要确保你的应用已经请求并获得了录音权限。

回到顶部