2.4 KiB
2.4 KiB
App 端实时录音配置说明
让 recorderManager.onFrameRecorded 在 App 端工作的关键配置
必须满足的条件:
-
format 必须是 'pcm'
format: 'pcm' // 不能是 mp3 或 aac -
必须设置 frameSize
frameSize: 5 // 单位 KB,建议 1-10 -
sampleRate 必须是标准值
sampleRate: 16000 // 只能是 8000/16000/44100 -
完整配置示例
recorderManager.start({ duration: 600000, // 最长录音时间 sampleRate: 16000, // 采样率 numberOfChannels: 1, // 单声道 encodeBitRate: 48000, // 编码比特率 format: 'pcm', // 关键:必须 pcm frameSize: 5, // 关键:必须设置 audioSource: 'auto' // 音频源 })
工作原理
实时流式传输模式(推荐)
- 按住按钮 → 开始录音
- 录音持续进行,实时产生音频帧
- 按住时:发送音频帧到服务器
- 松开时:停止发送(但录音继续)
- 再次按住:继续发送
优点
- 低延迟,实时传输
- 服务器可以实时处理
- 用户体验好
缺点
- 需要 PCM 格式(文件较大)
- 需要服务器支持流式处理
备用方案
如果 onFrameRecorded 仍然不工作,会自动降级到 onStop 方案:
recorderManager.onStop((res) => {
// 读取完整录音文件
// 一次性发送到服务器
})
调试技巧
-
查看日志
✅ 录音已开始- 录音启动成功🎤 收到音频帧 #1- 实时帧工作⏹️ 录音已停止- 降级到备用方案
-
如果没有音频帧
- 检查 format 是否为 'pcm'
- 检查 frameSize 是否设置
- 检查 manifest.json 中 Record 模块是否启用
-
性能优化
- frameSize 越小,延迟越低,但回调频率越高
- 建议值:3-5 KB
服务器端要求
服务器需要支持:
- WebSocket 连接
- 接收 PCM 格式音频流
- 实时语音识别(如果需要)
- 返回音频响应
当前状态
✅ 录音功能已实现 ✅ 文件发送已成功 ⚠️ 需要测试实时帧是否工作 ⚠️ 需要检查服务器端处理
下一步
- 重新编译并测试
- 查看是否有
🎤 收到音频帧日志 - 如果有,说明实时流式传输工作
- 如果没有,会自动使用备用方案(文件发送)