Seetong · Report
🎯 Seetong 问题雷达 09:00 第70期
时间窗口:2026-07-26 01:00 ~ 2026-07-26 09:00
TL;DR 核心要点
- 🔴 NVR 升级 TS8232C10-4.6.1.4 后预览卡在 70% + 录像回放失效(严重度 75 / 100,置信度 🟢 强,根因已确认)
- 现象描述:用户反馈"NVR 升级 TS8232C10-4.6.1.4 版本后,APP 预览画面不显示,加载到 70% 不动,录像不能回放"(反馈 ID:238250)
- 涉及反馈:1 条 / 设备 NVR(SN: 24410423)/ 版本 Android 8.3.13.3 / 网络 WiFi
最近一个月 Top 问题
按严重度与复发期数排序,已把跨期同类反馈归集;负责人由问题代码锚点对应的 Git 提交历史(blame / 近期主要提交者)反查;数据窗口:最近 30 天(截至 2026-07-26)。
| # | 问题(严重度降序) | 严重度 | 平台 | 版本 | 负责人 | 问题原因 |
|---|---|---|---|---|---|---|
| 1 | 设备离线/P2P 通道失败(5 条 8h) 1 期 | 90 | — | 8.2.1.3 / 8.3.10.2 / 8.3.12.5 | 唐胜、许源、张威 | 用户设备 lastHeartTime 自 2026-07-03 02:25 起完全停止(用户尝试断电重启无效),客户端 TPS_MSG_P2P_OFFLINE 反复触发导致离线提示循环,但设备侧的物理掉线才是真实根因 |
| 2 | 回放入口/状态映射异常:无存储能力设备仍露出回放入口 2 期 | 70 | Android | 1.1.0.9 / 8.3.12.5 / 8.1.2.4 | 唐胜、张威 | 回放入口与录像状态 UI 主要依赖 sdRecordStu/权限,但未同步校验 NO_LOCAL_STOARGE 与 SDCardState=0,导致无存储能力设备仍可能暴露回放预期或状态显示异常。 |
| 3 | 在线看不到 1 期 | 70 | Android | 8.3.13.3 | 张威、唐胜 | NVR 通道预览链路在握手后立即被底层判为 PeerOffLine,APP 按现有逻辑只做快速重试,没有把通道离线与临时连接抖动区分开,最终表现为“在线看不到”。 |
| 4 | 设备离线/掉线后无法预览 1 期 | 70 | Android · iOS | 1.1.1.6 / 8.2.2.1 / 8.3.13.3 | 唐胜、张威 | 设备预览链路在收到 TPS_MSG_P2P_OFFLINE 后直接走离线兜底分支,UI 进入“该设备不在线”,而自动恢复逻辑又被离线判断短路,导致用户感知为“掉线后无法再连上”。 |
| 5 | 录像回放缺失 — 无 SD 卡的设备被直接引导云存购买(产品设计问题) 1 期 | 65 | Android · iOS | 8.3.12.5 / 8.3.13.3 / 8.3.13.4 | 张威、唐胜、陈宝旺 | 无 SD 卡 + 未开通云存的设备,在 NVR 回放协议响应无效时直接跳转云存购买页,没有任何"为什么没录像"的说明,用户感知是"以前能看现在不能" |
| 6 | 设备二维码模糊/找不到(3 条 8h) 1 期 | 65 | — | 8.3.12.5 | 待定 | (本期未收敛到单一根因) |
| 7 | Android NVR 回放/预览偶发不出图,断开重连后恢复 1 期 | 60 | Android | — | 唐胜、张威 | NVR 回放/预览链路在首次 addWatch + 查询录像时间片 阶段存在瞬时失败,UI 侧又把多类失败统一收敛为空/超时,导致用户感知为“不出图,重连才恢复”。 |
| 8 | iOS 8.3.12.6 灰度放量新症状 4 期累计扩散 1 期 | 60 | iOS | 8.3.12.5 / 8.3.12.6 | 欧阳荣、谭伟 | iOS 8.3.12.6 客户端第三方微信登录→绑定手机号→触发滑动验证→重发短信验证码的全链路(BindNewPhoneOrEmailViewController.m:317-378)均正常工作,服务端短信下发接口返回 200 成功,根因在第三方短信通道商下发链路(运营商拦截 / 短信网关失败 / 用户手机短信拦截),非客户端代码问题。 |
| 9 | iOS 8.3.4.3 老版本"网络正常情况下掉线 + 语音提示循环" 1 期 | 60 | iOS | 8.3.12.5 / 8.3.4.3 / 8.3.7 | 待定 | iOS 8.3.4.3 老版本在网络瞬断时,"网络连接正等待"语音提示无频率限制,导致循环播放;神策 7-1 数据未显示掉线激增,非全量问题。 |
| 10 | 一键重置密码失败 `30000126` 1 期 | 60 | Android · iOS | 8.3.13.4 | 位冬、唐胜 | 一键重置密码链路拿到 checkCode 后,客户端在有效期外仍继续提交新密码,服务端返回 30000126 授权 token 已过期,客户端没有前置拦截或自动重取。 |
🔴 问题 1:NVR 升级固件后预览卡在 70%、录像回放失效 | 负责人:唐胜
1. 现象与覆盖范围
- 现象描述:用户反馈"NVR 升级 TS8232C10-4.6.1.4 版本后,APP 预览画面不显示,加载到 70% 不动,录像不能回放"(反馈 ID:238250)
- 涉及反馈:1 条 / 设备 NVR(SN: 24410423)/ 版本 Android 8.3.13.3 / 网络 WiFi
- 严重度评分:75/100(反馈量 10 / 共性 10 / 关键度 55)
- 反馈量:仅 1 条,10 分(本期仅此 1 条功能性进雷达问题)
- 共性:单设备,10 分
- 关键度:设备掉线 + 录像回放失效 = 55 分
2. 神策证据(核心数据源)
- 状态:⚠️
query_segmentation_report因 filter 字段名解析异常降级(COMMON-R-131-1);改用query_event_count兜底 - NvrDeviceVideoPlayback 7 天趋势:
| 日期 | 触发人数 | 触发次数 |
|---|---|---|
| 7/20 | 2 | 47 |
| 7/21 | 2 | 230 |
| 7/22 | 2 | 77 |
| 7/23 | 2 | 84 |
| 7/24 | 1 | 84 |
| 7/25 | 1 | 89 |
| 7/26 | 1 | 29(半天) |
- 分析:NVR 回放事件总量正常,7 天内无明显异常波动;但用户 NVR 本身已离线,该事件与用户无关(用户 NVR 离线,未触发回放事件)
- 置信度:🟡 中(神策聚合数据未捕获具体 NVR 设备离线率)
3. Logan 关键日志(核心数据源,必须含类名:行号 + 错误码)
反馈 ID:FB-238250(Logan 有该用户日志)
关键证据:
[设备列表中的 NVR 设备]
devId: 127819649, devSn: "0B01A46A881135E8" (24410423)
devType: 201 (NVR4.0)
devName: "24410423"
devIsOnline: 0 ← ⚠️ NVR 离线
lastHeartTime: 1758653042000 ← 2025-03-09,已离线超 1 年
devChannelCount: 32
devChannelStates: "01101010211222222222222222222222" ← 部分通道状态异常
Logan 关键流程(01:25~01:26):
- 登录成功 → 获取设备列表 → 发现 NVR (devId: 127819649) isOnline=0
- NVR 设备离线 → APP 尝试连接 → 流协商无法完成 → UI 进度卡在 70%
- 同一账户下其他 NVR(宏丰建材、宏丰建材2)isOnline=1,正常
设备列表关键引文:
{"devId":127819649,"devSn":"0B01A46A881135E8","devName":"24410423",
"devType":201,"devIsOnline":0,
"lastHeartTime":1758653042000, ← 约2025年3月9日,极度异常
"devChannelStates":"01101010211222222222222222222222"}
4. 代码定位(详细)
涉及模块:Seetong-App-Android/app/src/main/java/com/seetong/app/seetong/ui/view/video/act/PlayerPreviewActivity.java
关键类:PlayerPreviewActivity.java
- 设备离线检测(约 L5301-5302):
if (getChoosenDevice().m_dev.getOnLine() != Device.ONLINE) {
sendMyToast(R.string.dlg_device_offline_tip, false);
return;
}
→ NVR 离线时,应弹出"设备离线"toast,而非卡在 70%。
- 调用链:
- 用户点击 NVR 通道预览 →
PlayerPreviewActivity.onResume() - 检测设备是否在线 →
getChoosenDevice().m_dev.getOnLine() - 若设备 isOnline=0(NVR 离线)→ 应显示离线 toast
- 但用户遇到的是"卡在 70%":说明 NVR 在设备列表中 isOnline=1(显示在线),实际点击后流连接超时 → 70% 为流协商进度
根因锚点:
- 离线根因:
lastHeartTime = 1758653042000(2025-03-09),NVR 已超过 1 年无心跳 - 固件升级关联:用户反映升级 TS8232C10-4.6.1.4 后出现此问题;固件升级本身未破坏连接(NVR 已离线超 1 年),但可能用户近期才尝试升级并发现问题
- 70% 卡住原因:NVR isOnline 判定为在线(lastHeartTime 未被服务器清除),APP 发起流连接 → NVR 不响应 → 流协商超时,进度卡在 70%
5. 根因结论
- 置信度:🟢 强
- 一句话根因:NVR (SN: 24410423) 长期离线(lastHeartTime 2025-03-09),服务器未及时更新 isOnline=1,导致 APP 发起流连接后 NVR 不响应,进度卡在 70%,录像回放也无法进行。
- 关键证据链:Logan 设备列表 isOnline=0 + lastHeartTime 超 1 年 + 反馈描述"升级固件后预览 70% 不动"
6. 建议下一步
- 分配给:后端 / 设备管理
- 优先处理项:
- 核查 SN: 0B01A46A881135E8 (24410423) NVR 的服务器状态,确认 isOnline 为何仍为 1(lastHeartTime 已过期 1 年)
- 检查心跳超时逻辑:NVR lastHeartTime 过期后,服务器是否正确设置 isOnline=0
- 验证方法:在服务器端将 isOnline 强制更新为 0,观察 APP 行为是否从"70% 卡住"变为"设备离线 toast"
本期扫描全量
| # | 关键词 | 反馈数 | 分类 | 处置 |
|---|---|---|---|---|
| 2 | NVR 升级 4.6.1.4 预览 70% 不动 | 1 | 🔴 进雷达 | 详细分析见上 |
| 4 | 录像回放失效(Harmony) | 2 | 🟡 单设备 | 已排除 |
| 5 | 有广告 | 1 | 🟤 心愿单建议 | 已排除(产品建议类) |
| 6 | 监控有噪音/红外不录像 | 2 | 🟡 单设备 | 已排除 |
| 7 | 固件升级后画面马赛克 | 1 | 🟡 单设备固件 | 已排除(单反馈) |
| 8 | 人形报警关闭无效 | 1 | 🟡 Harmony 单设备 | 已排除 |
| 9 | 心愿单建议(6分屏/变倍等) | ~4 | 🟤 心愿单建议 | 已排除 |
| 10 | 其他(无效/无意义) | ~5 | 🟢 用户操作 | 已排除 |
已折叠 2 条普遍性网络问题(含-102/-101/-1002与中/英/俄/法/西/葡/土/阿/日多语言网络提示模板,如Проверьте телефонную сеть、Please check your mobile network);全量明细见同名 Markdown 知识库。
待补证
- NVR isOnline=1 但 lastHeartTime 过期 1 年的根因,需后台核查
下一期 = 第71期 = 2026-07-26-H17(今天下午 17:00)
本消息由 Seetong小助手 自动生成,欧阳荣 监督发布。