4.4 KiB
4.4 KiB
当前测试状态
📊 已知情况
1. 录音功能
- ✅ 录音可以启动
- ✅ 录音可以停止
- ✅ 生成了录音文件路径
- ⚠️ duration 和 fileSize 为 undefined(Android 设备兼容性问题,已修复)
2. WebSocket 连接
- ✅ WebSocket 已连接(状态 1 = OPEN)
3. 当前问题
- ❌ 文件读取没有执行或失败
- 没有看到"文件读取成功"的日志
🔍 可能的原因
原因1: 代码逻辑问题
- 可能在某个检查处提前返回了
- 需要更多日志来定位
原因2: 文件系统权限问题
- App 可能没有文件读取权限
- 需要检查 manifest.json 配置
原因3: 文件路径问题
- 文件路径可能不正确
- 文件可能不存在
🔧 已添加的改进
1. 跳过 duration 检查
// ✅ 修复后
if (res.duration !== undefined && res.duration < 500) {
// 只有当 duration 有值且太短时才返回
return
}
// 如果 duration 是 undefined,跳过检查,继续执行
2. 添加更多日志
console.log('✅ 录音文件路径有效,准备读取文件...')
console.log('🔌 WebSocket 状态:', this.socketTask.readyState)
console.log('✅ WebSocket 状态正常,开始读取文件...')
console.log('📂 获取文件系统管理器:', fs ? '成功' : '失败')
3. 添加文件大小验证
if (actualSize < 32000) {
console.error('❌ 文件太小(< 1秒)')
return
}
📱 下一步测试
1. 重新编译
在 HBuilderX 中重新运行项目
2. 测试步骤
- 进入语音通话页面
- 按住"按住说话"按钮 3-5 秒
- 松开按钮
- 观察日志
3. 关键日志检查
应该看到以下日志序列:
✅ 录音文件路径有效,准备读取文件...
🔌 WebSocket 状态: 1
状态说明: 0=CONNECTING, 1=OPEN, 2=CLOSING, 3=CLOSED
✅ WebSocket 状态正常,开始读取文件... ← 新增
📂 获取文件系统管理器: 成功 ← 新增
✅ 文件读取成功 ← 关键!
📊 实际文件大小: 160000 bytes
📊 预计录音时长: 5.00 秒
📦 开始分片发送(官方推荐参数)
...
4. 如果还是没有"文件读取成功"
可能的情况:
情况A: 没有看到"开始读取文件"
说明在 WebSocket 检查处返回了
- 检查 WebSocket 状态是否真的是 1
情况B: 看到"开始读取文件"但没有"文件读取成功"
说明文件读取失败了
- 可能是文件路径问题
- 可能是权限问题
- 应该会有"文件读取失败"的错误日志
情况C: 看到"文件读取成功"但文件太小
说明录音时间太短或录音质量问题
- 检查"实际文件大小"
- 应该 > 96000 bytes(3 秒)
🎯 预期结果
完整的成功日志应该是:
=== startRecording 被调用 ===
✅ recorderManager.start 已调用
✅ 录音已开始
=== stopTalking 被调用 ===
🛑 停止录音并准备发送...
⏹️ 录音已停止
📋 完整的 res 对象: {"tempFilePath":"..."}
📁 文件路径: _doc/uniapp_temp_xxx/recorder/xxx.pcm
⏱️ 录音时长: undefined ms ← 可能是 undefined
📦 文件大小: undefined bytes ← 可能是 undefined
✅ 录音文件路径有效,准备读取文件...
🔌 WebSocket 状态: 1
✅ WebSocket 状态正常,开始读取文件...
📂 获取文件系统管理器: 成功
✅ 文件读取成功
📊 数据类型: object
📊 是否为 ArrayBuffer: true
📊 实际文件大小: 160000 bytes
📊 预计录音时长: 5.00 秒
📦 开始分片发送(官方推荐参数)
📊 总大小: 160000 bytes
📊 每片大小: 3200 bytes
📊 发送间隔: 100 ms
📊 预计发送时间: 5000 ms
📤 发送第 1 片,大小: 3200 bytes
✅ 第 1 片发送成功
...
✅ 所有音频片段发送完成,共 50 片
📤 发送结束标记 "end"
✅ 结束标记发送成功,等待服务器处理...
📋 收到控制消息, type: reply_text
🎵 收到音频数据流
📋 收到控制消息, type: reply_end
[播放音频]
📞 如果还有问题
请提供:
- 完整的客户端日志(从按下按钮到最后一条日志)
- 特别注意是否有:
- "开始读取文件"的日志
- "文件读取成功"的日志
- "文件读取失败"的错误日志
- 服务器日志(如果客户端成功发送了数据)
当前状态: 等待测试
已修复: duration/fileSize undefined 问题
待确认: 文件读取是否成功
下一步: 重新编译并测试