Files

33 lines
2.8 KiB
Markdown
Raw Permalink Normal View History

# 完整对话录音发布与实机验证(2026-09-27)
## 已发布
- Web:`0.99.15-rc.mixed-recordings1`。
- API:`0.99.16-rc.record-ready1`,前一版为 `0.99.15-rc.mixed-recordings1`。
- 设备固件:`1.7.0-controls.12`,COM6 应用分区写入并通过哈希校验,线上已上报此版本。
- 故事列表保留此前已上线的书本图标。
## 行为
设备获取 RTC 房间后、加入房间发布音频前,使用现有设备认证请求平台准备云端录制。平台校验设备绑定、会话、应用、房间及录音同意,调用火山 StartRecord:混流、纯音频、MP3、保存至 TOS。API 等待 GetRecordTask 返回 RUNNING 再响应设备。通话结束调用 StopRecord,另有空闲与最长时限作为兜底。
平台优先查询该会话对应的混流文件,界面显示“完整对话录音”;新版会话等待混流文件时不会显示旧分轨结果。旧版通话继续展示原有分轨文件,并注明旧版录制方式。
声音保持真实时间顺序,由火山混流生成,不在平台下载后拼接。平台只处理控制请求、元数据、权限和短期签名链接;客户从 TOS 直接下载,音频不存入平台、不经平台转发。当前默认 TOS 域名提供下载;在线播放仍需配置可用的自定义域名。
## 验证证据
- 隔离数据库上的 9 项后端及设备会话测试通过;Go vet 通过。
- 8 项浏览器验证通过,包含完整对话单文件、旧分轨、授权、直接链接、移动端和失效清理。
- 固件 ESP-IDF 编译通过,应用大小 3,754,928 字节;实际 C 代码主机测试通过 ASan/UBSan。
- 使用真实火山 API 的独立空房间验证:录制进入 RUNNING 用时 513ms,随后停止成功。没有用户音频。
- 用户于北京时间 2026-09-27 10:03–10:04 完成真实设备对话并结束。会话 `05673ed2-9642-49ac-80ef-340052184e85` 为 ENDED,mixed_recording=true。
- 使用真实家庭账号对应权限查询平台服务,返回 READY、mixed=true、**1 个 DIALOG 文件,65 秒,1,044,138 字节**;can_download=true,can_play=false,playback_ready=false。
- 发布前检查没有进行中的设备通话;发布清单校验基线源码和二进制哈希、Compose 差异。`.16` 仅替换 API,Web、callbacks、worker、gateway 与数据容器不变。匿名录音接口访问返回 401。
验证仅访问录制控制接口及文件元数据,没有下载或试听用户音频。因此已确认混流任务和单文件生成,具体声音内容及听感仍以客户下载试听为准。
## 发布记录
线上 `.15` 目录内 `mixed-recordings-release.json` 记录 API/Web 发布;`.16` 目录内 `record-ready-release.json` 记录 API 启动等待改进与前版镜像。固件备份与编译、刷写日志保留在本地 `.tmp-mixed-recordings/`。