Seetong · Report
🎯 Seetong 问题雷达 17:00 第72期
时间窗口:2026-07-26 09:00 ~ 2026-07-26 17:00
TL;DR 核心要点
- 🔴 在线看不到(严重度 70 / 100,置信度 强)
- 🟠 对讲监控没有声音(严重度 60 / 100,置信度 中)
- 现象描述:用户反馈“在线观看视频看不到”,Android 8.3.13.3,附带 Logan 与附件。
最近一个月 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:在线看不到(详细分析) | 负责人:张威、唐胜
1. 现象与覆盖范围
- 现象描述:用户反馈“在线观看视频看不到”,Android 8.3.13.3,附带 Logan 与附件。
- 涉及反馈:1 条 / 设备 NVR 通道 / 版本 8.3.13.3 / 地区 山东德州
- 严重度评分:70/100(反馈量 10 / 共性 20 / 关键度 40)
2. 神策证据(核心数据源)
- 关键事件分布:
MonitorWatchStep7 天 UV 从 168957 升到 184895,7/26 截至当前 124727,预览链路总体仍活跃。 - 关键字段分布:
query_segmentation_report返回error_code维度为空,说明当前埋点未把该失败样本稳定落到错误码分桶。 - 漏斗断点:本次神策仅拿到预览主事件趋势,未拿到有效 error_code 断点明细。
- 用户行为序列:用户进入设备列表后反复触发预览拉流,失败后多次自动重连。
- 趋势:整体预览量稳定,属于链路内局部失败,不是全局预览雪崩。
3. Logan 关键日志(核心数据源,必须含类名:行号 + 错误码)
- 反馈 ID:238338
- 关键栈:
CPGMonitor::Open→CPGClassPeer::RecvStatusReply, PeerOffLine→FC_ResumeDevComWithId()→ 再次CPGMonitor::Open - 错误码:
PeerOffLine,日志统计同时出现-102/-101 - 上下文:13:08:58 起对
cameraId=28327968连续发起预览,服务端握手成功,但 P2P 节点随即回PeerOffLine,APP 进入重连循环,playVideo-isNotPlaying:28327968-CH-*持续出现。 - 引文:
CPGMonitor::Open, lpszCameraID=28327968CPGClassPeer::RecvStatusReply, PeerOffLine, ErrorCodeFC_ResumeDevComWithId(): begin resume 28327968 communication
6. 代码定位(详细)
- 涉及模块:
~/Seetong-App-Android/Seetong5.0ForSeetong/Seetong5.0/app - 关键类:
LibImpl.java:1516、LibImpl.java:5060 - 调用链:
PlayerPreviewActivity.onResume/startPlay→LibImpl.AddWatchEx→onMsgRspAddWatch→OpenStreamAgent(video/audio)→PlayAgent - 关键分支:
LibImpl.java:1516-1525对 NVR 通道未连接/离线会直接拦截 AddWatch。LibImpl.java:5116-5215在收到 AddWatch 响应后创建 port、开视频流、开音频流、启动播放;若底层返回离线,播放器反复重建。- 修复方向锚点:优先看
LibImpl.java:1516-1525的 NVR 在线态判定,与5069-5215的 AddWatch/PlayAgent 重试节奏是否对PeerOffLine做了错误恢复隔离。
7. 根因结论
- 置信度:🟢 强
- 一句话根因:NVR 通道预览链路在握手后立即被底层判为
PeerOffLine,APP 按现有逻辑只做快速重试,没有把通道离线与临时连接抖动区分开,最终表现为“在线看不到”。 - 关键证据链:Logan 中
CPGMonitor::Open后连续PeerOffLine+ 代码里 AddWatch/PlayAgent 重试链路直接对应预览失败恢复逻辑。
8. 建议下一步
- 分配给:Android 播放/连接链路
- 优先处理项:检查 NVR 通道在线态同步与
PeerOffLine后的退避重试策略。 - 验证方法:用同类 NVR 通道复现,观察
PeerOffLine后是否仍无限快重试且无首帧。
🟠 问题 2:对讲监控没有声音(详细分析) | 负责人:唐胜、张威
1. 现象与覆盖范围
- 现象描述:用户两次反馈“对讲监控没有声音”,Android 8.3.13.3,同一设备同一客户端。
- 涉及反馈:2 条 / 设备 IPC / 版本 8.3.13.3 / 地区 山东临沂
- 严重度评分:60/100(反馈量 10 / 共性 10 / 关键度 40)
2. 神策证据(核心数据源)
query_segmentation_report以Talk事件查询直接失败,提示事件不存在。- 已按降级规则改查事件定义,
list_event_schemas(keyword=talk)未返回对讲专用事件,说明当前神策侧没有稳定对讲结果事件可直接分桶。 - 降级说明:神策失效 → 证据未拿到,置信度降为中。
3. Logan 关键日志(核心数据源,必须含类名:行号 + 错误码)
- 反馈 ID:238321
- 关键栈:
AudioIntercomController-startSpeak ret:0→TPS_TALKRsp→LibImpl.recvRecordData is call...begin/end→AudioIntercomController-stopSpeak ret:0 - 错误码:无明确 error_code,控制链返回成功。
- 上下文:07:11:53 对讲开启成功,随后多次收到
recvRecordData,但用户仍反馈“没有声音”;日志显示本地对讲状态被快速切回m_voice_stop_fromTalk=true,更像音频播出链路或状态切换异常,不是对讲命令没发出去。 - 引文:
AudioIntercomController-startSpeak ret:0 devId = 44963192LibImpl-recvRecordData is call...beginAudioIntercomController-stopSpeak ret:0
6. 代码定位(详细)
- 涉及模块:
~/Seetong-App-Android/Seetong5.0ForSeetong/Seetong5.0/app - 关键类:
PlayerPreviewActivity.java:4705、AudioIntercomController.kt:45、DeviceVoiceTalkView.kt:516、LibImpl.java:1330 - 调用链:
PlayerPreviewActivity.onSpeak()→AudioIntercomController.startSpeak()→StartTalkExAgent/StartTalkWithNVRAgent→LibImpl.recvRecordData()→PreviewPlayerView/音频播放 - 关键分支:
AudioIntercomController.kt:88-127依赖m_add_watch_rsp.hasAudio()判定设备是否支持对讲。AudioIntercomController.kt:147-178启动失败才 toast;本例ret=0,说明失败不在启动阶段。DeviceVoiceTalkView.kt:516-549仅负责模式初始化与音量读取,不保证音频播放链路可用。- 修复方向锚点:优先排查
LibImpl.recvRecordData()到播放器播出链路,以及AudioIntercomController在收到TPS_TALKRsp后为何快速把m_voice_stop_fromTalk置回停止态。
7. 根因结论
- 置信度:🟡 中
- 一句话根因:对讲控制面成功拉起,但音频数据回调后未稳定进入播出态,疑似对讲状态机与播放音频状态切换打架,导致用户体感“对讲无声音”。
- 关键证据链:Logan 显示
startSpeak ret:0+recvRecordData已到达 + 随后快速stopSpeak,说明问题在音频播出/状态收口,不在权限或对讲入口。
8. 建议下一步
- 分配给:Android 预览音频 / 对讲
- 优先处理项:补采对讲结果埋点,并核对
recvRecordData后播放器是否真正出声。 - 验证方法:真机对讲抓日志,核对
recvRecordData、AudioTrack 初始化和用户可听见声音三者是否一致。
本期扫描全量(全部沉淀到知识库)
| # | 关键词 | 反馈数 | 分类 | 处置 |
|---|---|---|---|---|
| 2 | 设备离线/突然离线/断电后离线 | 5 | 🟠 24h 重复 | 9:00 已分析,跳过 |
| 3 | 在线视频看不到 | 1 | 🔴 进雷达 | 详细分析见上 |
| 4 | 对讲监控没有声音 | 2 | 🟠 进雷达 | 详细分析见上 |
| 5 | 有广告/夜间灯光建议/多人提醒等 | 13+ | 🟤 心愿单建议 | 已排除 |
| 6 | 无意义输入/联系不上你们/维修诉求 | 6 | 🟢 用户操作 | 已排除 |
| 7 | 单设备录像/车检/弱网抱怨 | 5 | 🟡 配置问题 | 已排除 |
已折叠 1 条普遍性网络问题(含-102/-101/-1002与中/英/俄/法/西/葡/土/阿/日多语言网络提示模板,如Проверьте телефонную сеть、Please check your mobile network);全量明细见同名 Markdown 知识库。
待补证
- 对讲链路缺少神策专用结果事件。
- 预览失败样本的 error_code 分桶未上报。
下一期 = 第73期 = 2026-07-27-H09(明天早上 9:00)
本消息由 Seetong小助手 自动生成,欧阳荣 监督发布。