更新记录

1.0.0(2026-02-10) 下载此版本

自动与插件根目录changelog.md保持同步


平台兼容性

uni-app(3.8.0)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android Android插件版本 iOS iOS插件版本 鸿蒙
- - - - - - 5.0 1.0.0 12 1.0.0 -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

FYQ 实时录音插件

简介

FYQ Audio Recorder 是一个基于 UTS 开发的实时录音插件,支持获取 PCM 音频数据回调,适用于语音识别、音频可视化等场景。

特性

  • 支持 Android/iOS 双平台
  • 实时 PCM 数据回调
  • 可配置采样率、声道、位深
  • 完整的权限处理
  • 支持暂停/恢复录音
  • 提供 AudioRecord (Android) 和 AVAudioEngine (iOS) 原生实现

安装

fyq-audio-recorder 目录放入项目的 uni_modules 目录下。

使用方法

import { createAudioRecorder } from '@/uni_modules/fyq-audio-recorder'

// 创建录音器实例
const recorder = createAudioRecorder()

// 设置数据回调
recorder.onFrameRecorded((data) => {
  console.log('PCM 数据:', data.frameBuffer)
  console.log('数据大小:', data.bufferSize)
  console.log('时间戳:', data.timestamp)
})

// 设置状态回调
recorder.onStateChange((state) => {
  console.log('录音状态:', state.status)
  if (state.status === 'error') {
    console.error('错误信息:', state.message)
  }
})

// 开始录音
recorder.start({
  sampleRate: 16000,  // 采样率 16kHz
  channels: 1,        // 单声道
  bits: 16,          // 16bit
  format: 'raw'      // PCM 格式
})

// 暂停录音
recorder.pause()

// 恢复录音
recorder.resume()

// 停止录音
recorder.stop()

// 释放资源
recorder.release()

API 文档

createAudioRecorder()

创建录音器实例。

返回值: IAudioRecorder 录音器实例

IAudioRecorder

start(options)

开始录音。

参数:

  • options.sampleRate: 采样率,默认 16000
  • options.channels: 声道数,默认 1 (单声道)
  • options.bits: 位深,默认 16
  • options.format: 音频格式,默认 'raw'

stop()

停止录音。

pause()

暂停录音。

resume()

恢复录音。

release()

释放资源。

onFrameRecorded(callback)

设置实时 PCM 数据回调。

回调参数:

  • frameBuffer: ArrayBuffer - PCM 音频数据
  • bufferSize: number - 数据大小(字节)
  • timestamp: number - 时间戳

onStateChange(callback)

设置状态变化回调。

回调参数:

  • status: 'start' | 'stop' | 'error' - 状态
  • code: number - 错误码(仅错误时)
  • message: string - 错误信息(仅错误时)

错误码

错误码 说明
900001 麦克风权限被拒绝
900002 录音器初始化失败
900003 录音器启动失败
900004 参数配置错误

平台配置

Android

需要在 manifest.json 中添加录音权限:

{
  "app-plus": {
    "distribute": {
      "android": {
        "permissions": [
          "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
          "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>"
        ]
      }
    }
  }
}

iOS

需要在 manifest.json 中添加麦克风权限说明:

{
  "app-plus": {
    "distribute": {
      "ios": {
        "privacyDescription": {
          "NSMicrophoneUsageDescription": "需要使用麦克风进行录音"
        }
      }
    }
  }
}

注意事项

  1. Android 最低 SDK 版本为 21
  2. iOS 最低版本为 12.0
  3. 使用完毕后务必调用 release() 释放资源
  4. PCM 数据格式为 16bit 有符号整数,小端序

示例项目

项目包含完整的测试页面 pages/audioRecorder/audioRecorder.vue,包含:

  • 录音控制按钮
  • 实时数据统计
  • 音频波形可视化
  • 运行日志输出

版本历史

1.0.0 (2024-02-10)

  • 初始版本
  • 支持 Android/iOS 双平台
  • 实时 PCM 数据回调
  • 暂停/恢复功能

开发文档

参考 UTS 插件开发文档:

隐私、权限声明

1. 本插件需要申请的系统权限列表:

需要麦克风权限进行录音

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。