Seetong · Report

🎯 Seetong 问题雷达 17:00 第234期

时间窗口:2026-10-15 09:00:00 ~ 2026-10-15 17:00:00(Asia/Shanghai)

📌TL;DR 核心要点

  • 🟠 Android 8.4.1.6 回放页「不常亮 + 时间轴不同步」双症状合并且在同一条反馈(严重度 62 / 100,置信度 中)——反馈 257450(realme RMX3461 / 江苏苏州)原话「回放是屏幕不是常亮。而且没个头回放时间转换不同步」,Logan 直证该用户回放全程零 Screen awake 日志,且 timeline time changed 的 timeSec 连续变化时 stateTimeSec 冻结在 32690 不变;同窗口 257394(Redmi M2012K11AC / 广东江门)「回放放大左下角有画面」,两次 applyZoomToTimeline zoomIn=true 后 RecordPlayerView-updateTransform 仍为 scale = 1.0 offsetX = 0.0 offsetY = 0.0,指向回放视口变换未随缩放生效,与本问题同一页面同一变换链路。沿用任务 T-20260926-170258-576a(回放熄屏,已连续第 4 期)、T-20260922-170415-9496(时间跳转异常)
  • 🟠 HarmonyOS 1.1.1.11 端「回放不可用」再次独立出现(严重度 60 / 100,置信度 弱)——反馈 257443(HUAWEI CHZ-AL00 / 重庆)原话「看不到」,同窗口另有 257411「设备离线什么原因」、257393「无缘无故乱扣费」,1.1.1.11 版本占比 15 / 85(17.6%)居第二位;该端全部 15 条反馈 Logan 提供数为 0,本期为第 13 期零覆盖,无法做根因分析,只能给弱置信度。沿用任务 T-20260926-170258-2226(HarmonyOS 实时预览与回放大范围不可用)
  • 现象描述:用户在 KMP 回放页看到三类表现同时存在——(a) 观看回放时手机不保持屏幕常亮,屏幕会自行熄灭;(b) 拖动时间轴时画面时间与时间轴状态不同步;(c) 双指放大回放画面后,画面变换未跟随缩放,左下角仍有残留画面。

🔥最近一个月 Top 问题

按严重度与复发期数排序,已把跨期同类反馈归集;负责人由问题代码锚点对应的 Git 提交历史(blame / 近期主要提交者)反查;数据窗口:最近 30 天(截至 2026-10-15)。

#问题(严重度降序)严重度平台版本负责人问题原因
1升级后回放体验整体退化
4 期 · 18 条反馈
85Android · iOS8.4.1.6 / 8.3.14.2唐胜、许源、欧阳荣、谭伟8.4.1.6 对回放链路做了多处改动(时间条 UI、通道切换进度对齐、报警-录像联动),导致回放体验多点退化;Logan 显示取流层无崩溃,问题在"UI/状态对齐 + 报警录像关联"而非连接失败。
2KMP 回放页未申请屏幕常亮,回放中手机自动息屏
11 期 · 29 条反馈
84Android · HarmonyOS8.4.1.6 / 8.4.1 / 8.4.2陈宝旺、唐胜、许源、谭伟KMP 回放页的屏幕常亮能力已在代码中完整实现(KMP 公共层 → 桥接层 → Android 宿主层齐备),但承载该实现的提交只落在 feature_v8.4.2 一条分支上,feature_v8.4.4、master、hotfix_v1.1.1 全部不含,因此所有已发布版本(Android 8.4.1.6 / HarmonyOS 1.1.1.11)在运行时都走不到 FLAG_KEEP_SCREEN_ON,回放过程中发生系统级息屏。
3HarmonyOS 1.1.1.11 回放 / 监控链路不可用连续第 6 期聚集
14 期 · 130 条反馈
72HarmonyOS1.1.1.11 / 1.1.1 / 1.1.1.6陈宝旺、冉博麟、唐胜、李国涛待定——HarmonyOS 1.1.1.11 的回放 / 监控链路存在跨机型跨地区的选择性失败,但由于 HarmonyOS 端 Logan 上报链路自 2026-09 起持续缺失(连续 6 期 0 条可下载),根因无法从客户端日志侧确认,当前只能确认「影响面真实存在且在扩大机型覆盖面」。
4KMP 卡回放取「当天录像」时走云回放分支,失败后无超时兜底并反复重试
1 期 · 4 条反馈
71Android8.3.11.3 / 8.4.1.6陈宝旺、谭伟KMP 回放页在选择 Tab 时只信设备记忆、不信设备能力,把 supportCloud=false 的设备硬切到云回放 Tab 并以「前一天」初始化;云链路从未 prepared(currentVideoUrl 空、cloudPrepared=false),失败事件 result=0 又恰好落入 result<0 的无退避重试分支,同时 SD 异常态在非 WiFi IPC 上被 return NONE 吞掉——三者叠加,用户既看不到当天录像也收不到失败提示,且失败状态被 saveLastPlaybackTab(tabIndex=1) 固化到下一次。
5iOS 灯光配置「提示失败 / 实际成功」——`NetworkIndicatorEnable="-1"` 非法值导致 1521 返回 -1
1 期 · 3 条反馈
68iOS8.4.1.4 / 8.4.1.6欧阳荣、谭伟iOS 端把 1301 + 1108 + 1521 三条独立协议的结果汇聚到同一个回调 block(UserClient.mm:1504 / 5091 / 5099),任一条失败即判定整次保存失败;当 1521 携带设备并不支持的 NetworkIndicatorEnable="-1" 字段时返回 Result="-1",UI 因此报「配置失败」,而 1301 / 1108 已生效 → 用户看到「提示失败、实际成功」。
6Android 8.4.1.6 进入监控长期「一直加载」——`add_watch_result=-1` 连续失败 40 次、首帧迟至 105 秒
3 期 · 10 条反馈
66Android · iOS8.4.1.6唐胜、张威、谭伟、欧阳荣进入监控页时 P2P 通道尚未建立,客户端在 105 秒窗口内以约 10 秒为周期反复 addWatch(返回 -1)→ stopWatch 空转,且无首帧超时兜底,用户侧表现为「一直加载」。
7iOS 回放「当前同时播放人数已达上限」误触发——NVR 主设备与通道共享 `cloudId` 导致额度自占
1 期 · 1 条反馈
64iOS8.3.14.3 / 8.4.1.6欧阳荣、谭伟、位冬iOS 端 cloudId 被定义为「NVR 主设备与全部通道的公共分组键」(Camera.h:500 / STDeviceListModel.m:657),回放页又固定以 cameraArray.firstObject 作为回放上下文(STPlaybackVC.m:6046-6048),使单用户单设备场景下也可能同时占用「主设备会话」与「通道会话」两份 NVR 并发额度;一旦 NVR 返回 -7 / -14,STPlaybackVC.m:1422 立即把它翻译成「当前同时播放人数已达上限」并强制停止回放、隐藏功能栏,用户表现为「回放看不了」。
8Android 8.4.1.6「不存录像了」——设备侧存储能力位缺失
2 期 · 6 条反馈
63Android · HarmonyOS · iOS8.4.1.6 / 1.1.1.11唐胜、张威待补证——该 HONOR BRC-AN00 用户的设备在能力协商中未声明本地存储能力,客户端据此既不提示也无法确认存储可用,表现为「不存录像」;需设备端确认存储介质状态与固件行为。
9Android 8.4.1.6 卡回放开启 2 倍速后画面丢帧、时间轴跳 10 余秒
2 期 · 2 条反馈
62Android8.4.1.6陈宝旺、唐胜卡回放链路对时间轴滚动中间值未做节流(onTimeChanged 直通),且帧回调的去重粒度为固定 1 秒,在 2 倍速下单帧时间跨度已超过去重窗口,两者叠加使刻度尺与文案出现十秒级跳变;画面丢帧则需由播放器侧 controlNvrReplay(..., NVR_ACTION_FAST, speed, "") 的取流策略确认。
10云录像漏录人(AI 人形录像缺失)
1 期 · 2 条反馈
62Android8.3.14.2 / 8.4.1.6陈宝旺、唐胜云录像片段的结束判定与人员活动尾段不匹配,导致"人走后最后一段"容易被提前截断;该链路缺少线上埋点,无法量化发生面。

🟠 问题 1:Android 8.4.1.6 回放页「不常亮 + 时间轴不同步 + 缩放不生效」同源聚集 | 负责人:唐胜、陈宝旺、谭伟

1. 现象与覆盖范围

  • 现象描述:用户在 KMP 回放页看到三类表现同时存在——(a) 观看回放时手机不保持屏幕常亮,屏幕会自行熄灭;(b) 拖动时间轴时画面时间与时间轴状态不同步;(c) 双指放大回放画面后,画面变换未跟随缩放,左下角仍有残留画面。
  • 涉及反馈:257450(Android 8.4.1.6 / realme RMX3461 / 江苏苏州常熟 / 15:58:32,Logan 可读)、257394(Android 8.4.1.6 / Redmi M2012K11AC / 广东江门 / 10:57:09,Logan 可读)、257383(Android 8.4.1.6 / OPPO PHJ110 / 河南开封 / 10:00:07,Logan 可读,「设备没法回放」)、257446(Android 8.4.1.6 / vivo V2164A / 山东临沂 / 15:16:27,Logan 无有效内容)
  • 覆盖维度:1 平台(Android)× 1 版本(8.4.1.6)× 4 机型(realme / Redmi / OPPO / vivo)× 3 地区(江苏 / 广东 / 河南)= 3 个维度
  • 时间分布:4 条分散在 10:00 ~ 15:58 之间,非单点突发
  • 严重度评分:62 / 100(反馈量 20 / 共性 20 / 关键度 30)
  • 反馈量 20:窗口内 4 条回放类反馈(3~5 条档),其中 3 条为可读 Logan 的独立样本
  • 共性 20:4 机型 × 3 地区 × 1 版本(2 维)
  • 关键度 30:录像回放类,取 30(低于设备掉线/远程查看的 40)

2. 神策证据(核心数据源)

  • 事件可用性核验:
事件近 7 天(10-09 ~ 10-15)触发结论
NvrDeviceVideoPlayback仅 10-09 / 10-12 / 10-13 共 3 天有量,日触发 1~5 次、日用户 2~3 人事件存在但近乎无埋点覆盖,不能作为回放链路健康度指标
UCCloudPlayBackResult查询返回 0 行云存回放结果事件无数据
PlayBackEvent / MonitorScreenExit查询返回 0 行(列名为空)事件不存在或未接入
  • 关键缺口:回放链路的屏幕常亮动作没有任何服务端埋点。Logan 中 KuiklyRenderActivity.setKeepScreenOn 已在客户端打日志(SCREEN_AWAKE_TAG),但该日志不上报神策,因此无法从服务端回答「有多少回放会话请求过常亮、多少被拒绝」。这是本期最重要的证据边界。
  • 趋势判断:无法下趋势结论。NvrDeviceVideoPlayback 的日均 1~5 次量级不足以支撑任何趋势或分布推断,禁止用该事件的口径代表线上回放整体情况。

3. Logan 关键日志(核心数据源)

  • 反馈 257450(realme RMX3461 / 江苏苏州,405567 bytes / 21127 行,覆盖 10-15 全天含 15:29 时段)
  • 该用户当日多次进入 KMP 回放页:[L5256] KMP_SCAN_TRACE-onCreate page=PlayBackPage、data={"devId":"9388193-CH-2",...,"fromPreviewPlayback":true,"canRotate":true}
  • 回放正常启动并出首帧:

> [L5411] 2026-10-15 10:04:44.640 RecordPlayerView-startReplay: devId=9388193-CH-2, date=20261015090444, recordType=268435455 this=224737753 oldViewId=-1 oldOwner=null renderer=42987422
> [L5419] 2026-10-15 10:04:45.123 LibImpl-onNvrReplayResp, act=0,have audio=1,video codec=H264
> [L5425] 2026-10-15 10:04:45.715 RecordPlayerView-onRecvFirstFrame: devId=9388193-CH-2 this=224737753 viewId=29 owner=42987422 renderer=42987422 isOwner=true

  • 常亮证据(关键):全份 21127 行日志中 Screen awake 命中 0 次。代码里 KuiklyRenderActivity.setKeepScreenOn(KuiklyRenderActivity.kt:84)必然打印 "Screen awake requested=..." 与 "Screen awake applied=..."(:90 / :96),未打印即表示该回放会话从未发起常亮请求。
  • 同一 Activity 内其其它 KMP 页面确实发起过请求:[L2647] Screen awake requested=false, page=DeviceListPage(DeviceListPage 的关闭请求存在,说明桥接链路本身可用),反衬回放页没有对应请求。
  • 时间轴不同步证据(关键):

> [L5430] 10:04:47.749 timeline time changed, source=portrait, timeSec=32958, text=09:09:18, stateTimeSec=32690
> [L5432] 10:04:47.767 timeline time changed, source=portrait, timeSec=33053, text=09:10:53, stateTimeSec=32690
> [L5434] 10:04:47.786 timeline time changed, source=portrait, timeSec=33115, text=09:11:55, stateTimeSec=32690
> [L5436] 10:04:47.801 timeline time changed, source=portrait, timeSec=33165, text=09:12:45, stateTimeSec=32690
> [L5438] 10:04:47.814 timeline time changed, source=portrait, timeSec=33249, text=09:14:09, stateTimeSec=32690
> [L5440] 10:04:47.833 timeline time changed, source=portrait, timeSec=33299, text=09:14:59, stateTimeSec=32690
—— 在 98 毫秒内 timeSec 从 32958 变到 33299(跨 341 秒),而 stateTimeSec 始终冻结在 32690。这与用户原话「回放时间转换不同步」逐字对应。

  • 非预期事件:同会话内 receive playback play failed event, result=0 反复出现([L5418]、[L5424]),result=0 表示非失败码,属误报回放失败,与任务 T-20261014-090647-bbbe(startReplay 与失败事件竞态)同族,本期作为同页并发问题记录。
  • 反馈 257394(Redmi M2012K11AC / 广东江门,覆盖 09:13 ~ 09:1x)
  • 回放正常启动出首帧:[L7893] RecordPlayerView-startReplay: devId=45809651 ... viewId=29、[L7915] receive playback play failed event, result=0
  • 缩放不生效证据(关键):

> [L8288] 09:14:01.326 track playback event elementId=playback_card_timeline_zoom_long_press_in
> [L8289] 09:14:01.329 PlayBackPage:applyZoomToTimeline, zoomIn=true, fullscreen=false, immediate=true
> [L8292] 09:14:01.382 PlayBackPage:applyZoomToTimeline, zoomIn=true, fullscreen=false, immediate=true
> [L8295] 09:14:01.441 PlayBackPage:applyZoomToTimeline, zoomIn=true, fullscreen=false, immediate=true
而画面变换日志全程为:
> [L7557] 09:13:48.957 RecordPlayerView-updateTransform scale = 1.0---offsetX = 0.0---offsetY = 0.0
> [L8417] 09:14:04.973 RecordPlayerView-updateTransform scale = 1.0---offsetX = 0.0---offsetY = 0.0
> [L9081] 09:14:18.766 RecordPlayerView-updateTransform scale = 1.0---offsetX = 0.0---offsetY = 0.0
—— applyZoomToTimeline 已连续下发 3 次 zoomIn=true,updateTransform 的 scale 始终为 1.0、偏移始终为 0.0,即缩放事件未传递到视口变换层。这正是用户「回放放大左下角有画面」的直接机制。

  • 反馈 257383(OPPO PHJ110 / 河南开封,覆盖 09:04 ~ 09:42)
  • 回放链路成功:[L16555] searchNvrRecByTimeEx ... devId=[31668148] 20261015 → [L16631] startReplay: devId=31668148, date=20261015072835 → [L16636] onNvrReplayResp, act=0, audio=1, video codec=H265 → [L16643] mark card playback first frame(约 880 ms 出首帧)
  • 该用户在本份日志内两次回放均成功出首帧,与反馈「设备没法回放」不一致。判定为失败瞬间未被 Logan 覆盖(日志起点 09:04,用户 10:00 提交反馈),不作根因使用。
  • 反馈 257446(vivo V2164A / 山东临沂,82310 bytes / 3927 行):日志内无任何回放页记录,为无效样本,标「Logan 未覆盖问题时段」。
  • Logan 结论:257450 与 257394 两份样本同时覆盖了问题发生的动作时刻,且分别精确对上用户的 (a)(b) 与 (c) 两类描述——本问题的两条主证据链均来自 Logan 直证,置信度因此为「中」而非「弱」。

4. 代码定位(详细)

  • 涉及模块:KMP 回放页(Android 宿主)— Seetong5.0ForSeetong/Seetong5.0/kmp/ 与 Seetong5.0ForSeetong/Seetong5.0/app/
  • 关键类与锚点:
  1. 常亮桥接(链路完整但无人调用)
  • KuiklyRenderActivity.kt:84-92(setKeepScreenOn(pageName, enabled),入参落到 screenAwakeRequested 并打印 SCREEN_AWAKE_TAG)
  • KuiklyRenderActivity.kt:94-102(applyScreenAwakeRequest():window.addFlags(FLAG_KEEP_SCREEN_ON) / clearFlags,受 isActivityResumed && screenAwakeRequested 联合约束)
  • KMPBridgeModule.kt:108-113(原生桥接方法 "setKeepScreenOn",从 params 取 pageName / enabled)
  • 结论:宿主侧接口齐备,但全仓库 setKeepScreenOn 的调用者只有这一处桥接分发(KMPBridgeModule.kt:108),KMP 页面侧不存在调用点。 即回放页从未发起常亮请求——与 257450 日志零 Screen awake 完全吻合。
  • ⚠️ 需注意:本仓库工作区为裁剪视图,KMP 前端页面(Kotlin/JS 侧的 PlayBackPage 实现)不在当前工作区,「调用点完全不存在」需 owner 在前端页面仓库复核;但不改变「257450 该次回放确实没有发起常亮请求」这一事实。
  1. 视口变换 / 缩放链路(事件到达被丢弃)
  • PlayBackPage.applyZoomToTimeline(前端页面侧,日志可见 zoomIn=true, fullscreen=false, immediate=true 连续下发)
  • RecordPlayerView.updateTransform(RecordPlayerView.kt 内,日志固定输出 scale = 1.0 offsetX = 0.0 offsetY = 0.0)
  • RecordPlayerView.startReplay(RecordPlayerView.kt:220-259):device.m_view_id = playbackWindowId(:243)、device.m_video = openglesRender(:245)、IO 线程 startNvrReplay + 重试 + onReplayError(:249-258)
  1. 时间轴状态同步
  • KMPTimelineView.getCurrentScale(KMPTimelineView.kt,日志 scale=10.0)
  • PlayBackPage.timeline time changed(timeSec 与 stateTimeSec 两个字段分离上报)
  • 调用链:AlarmFragment2 / 预览页 → PlaybackPageRouter.openPlaybackPage(PlaybackPageRouter.kt:43-80)→ shouldOpenCrossPlatformPlayback()(:84-96,读 crossPlatformConfig.and)→ openKmpPlaybackPage(:101-141)→ Kuikly PlayBackPage → KMPPlayBackVideoView.playVideoByTime(KMPPlayBackVideoView.kt:223-229)→ RecordPlayerView.startReplay → LibImpl.startNvrReplay
  • 关键分支:
  • openKmpPlaybackPage 构造页面参数时 isCloudReplay 一行仍处于注释状态(PlaybackPageRouter.kt:120,//put("isCloudReplay", isCloudReplay)),KMP 侧以默认值消费 → 与原生 legacy 路径行为分叉(本期新增关键证据:该注释由 sheng.tang 于 2026-07-27 提交 e65cbfa20 引入,提交信息为「安卓跳转回放参数不携带进入的tab,让KMP控制」,属于有意为之的参数移交,需确认 KMP 侧是否已真正接管该语义)
  • 257450 日志 resolveSavedPlaybackTabForCurrentDevice, devId=9388193-CH-2, supportCloud=false, savedTabIndex=1, targetTabIndex=1 表明切页逻辑已由 KMP 接管,但 savedTabIndex 与 supportCloud=false 的组合语义待确认
  • 修复方向锚点:
  1. 优先:在 KMP 回放页进入/退出时补齐 setKeepScreenOn(pageName="PlayBackPage", enabled=true/false) 调用(宿主侧 KuiklyRenderActivity.kt:84 已就绪,无需改动宿主)
  2. 排查 applyZoomToTimeline(zoomIn=true) 到 RecordPlayerView.updateTransform 之间的变换参数传递,确认 scale 是否被硬编码为 1.0 或被后续事件覆盖
  3. 收敛 stateTimeSec 与 timeSec 的双字段语义:拖动过程中 stateTimeSec 应随松手提交更新,而非冻结
  4. 修正 receive playback play failed event, result=0 的误报过滤(result=0 不应作为失败事件广播)

5. 根因结论

  • 置信度:🟡 中
  • 一句话根因:Android KMP 回放页的三处页面级状态没有被正确下发/承接——常亮请求从未发起(宿主接口空置)、缩放事件在通往视口变换层时被丢弃、时间轴 stateTimeSec 冻结在拖动起始值;三者同属「KMP 页面状态 → 原生播放器渲染」这一条状态同步链路的系统性缺失,而非三个独立 Bug。
  • 关键证据链:257450 的 Logan 同时提供「零 Screen awake 且同 Activity 其它页有该日志」+「timeSec 98 ms 内跳 341 秒而 stateTimeSec 冻结」;257394 的 Logan 提供「zoomIn=true 三次而 updateTransform 恒为 1.0/0.0/0.0」;两条样本与用户原话逐条对应,且跨 4 机型 3 地区聚集。
  • 明确不成立的推断:不得写成「8.4.1.6 回放完全不可用」——257383 的 Logan 显示另有一路回放在约 880 ms 内成功出首帧(mark card playback first frame),说明初始化链路本身可用。

6. 建议下一步

  • 分配给:唐胜(RecordPlayerView.kt / KMPPlayBackVideoView.kt 与 PlaybackPageRouter.kt 近期主要提交者,2026-07-10 26da460ac、2026-07-27 e65cbfa20);常亮桥接侧可一并知会 陈宝旺(KuiklyRenderActivity.kt 2026-10-14 855b1fe6 维护者)
  • 优先处理项:
  1. 补齐回放页 setKeepScreenOn(enabled=true) 调用(最小改动、收益最直接),并为该桥接补埋点,否则下期仍无法从服务端量化
  2. 复核 applyZoomToTimeline → updateTransform 的变换参数链路
  • 验证方法:真机连续回放 10 分钟确认不熄屏;双指放大后核对 updateTransform 的 scale/offset 是否变化;拖动时间轴后确认 stateTimeSec 随松手更新。回归范围覆盖「卡回放 / 云回放」两种进入方式。

🟠 问题 2:HarmonyOS 1.1.1.11 端回放/预览不可用(第 13 期零 Logan)

1. 现象与覆盖范围

  • 现象描述:用户在 HarmonyOS 端进入回放或实时画面看不到内容;同窗口还有「设备离线什么原因」「无缘无故乱扣费」等相邻表述,指向端侧整体可用性体感偏低。
  • 涉及反馈:257443(Harmony 1.1.1.11 / HUAWEI CHZ-AL00 / 重庆 / 15:10:21,「看不到」)、257411(Harmony 1.1.1.11 / HUAWEI / 辽宁大连 / 12:47:20,「设备离线什么原因」)、257393(Harmony 1.1.1.11 / HUAWEI / 河南商丘 / 10:37:54,「无缘无故乱扣费」)
  • 覆盖维度:1 平台(HarmonyOS)× 1 版本(1.1.1.11)× 3 地区(重庆 / 辽宁 / 河南)= 2 个维度
  • 版本占比:本窗口 85 条中 HarmonyOS 1.1.1.11 占 15 条(17.6%),为占比第二高的版本(Android 8.4.1.6 为 60 条)
  • 严重度评分:60 / 100(反馈量 10 / 共性 20 / 关键度 30)
  • 反馈量 10:窗口内直接同类反馈 1 条,相邻可用性反馈 2 条
  • 共性 20:3 地区 × 1 版本(2 维)
  • 关键度 30:回放/监控可用性,取 30
  • 降级说明:本问题因 Logan 零覆盖,子项评分已按最低档保守取值;置信度只能给「弱」。

2. 神策证据(核心数据源)

  • 本期未取到 HarmonyOS 专属回放事件的有效数据:NvrDeviceVideoPlayback 近 7 天全平台仅 3 天有量(日均 1~5 次),无法按平台拆分;UCCloudPlayBackResult 返回 0 行。
  • 证据缺口说明:神策侧无法回答「HarmonyOS 回放请求数 / 失败数 / 失败码分布」,本问题的神策段结论为空,置信度随之下调。不得用 Android 回放事件的口径代替 HarmonyOS 结论。

3. Logan 关键日志(核心数据源)

  • 反馈 257443 / 257411 / 257393 三条的 loganFileDownloadUrl 全部为空字符串,按 skill 规则「Logan 未提供」处理,跳过下载,不阻塞报告。
  • 本期窗口 HarmonyOS 反馈 15 条 / Logan 0 条,连续第 13 期零覆盖(上一期 2026-10-15-H09 为第 12 期)。
  • 影响:HarmonyOS 侧任何问题都只能靠反馈文案聚类,无法定位类名、错误码、状态机分支,也无法区分「网络不可达」「首帧超时」「解码失败」「权限异常」中的哪一种。这已从「数据盲区」升级为结构性产品风险。

4. 代码定位(详细)

  • 涉及模块:HarmonyOS 宿主 + KMP 共享层
  • 可定位的共享锚点(与问题 1 同一套 KMP 渲染/回放代码):
  • KMPPlayBackVideoView.playVideoByTime(KMPPlayBackVideoView.kt:223-229)→ RecordPlayerView.startReplay(RecordPlayerView.kt:220-259)
  • LibImpl.startNvrReplay / onNvrReplayResp(回放应答与 ret 返回)
  • HarmonyOS 端专属代码未在工作区定位(当前工作区为 Android 裁剪视图),按 skill 规则标「代码待定位」,不阻塞报告。
  • 调用链(推断,未经日志验证):HarmonyOS 页面 → KMP 共享回放视图 → startNvrReplay → 首帧回调。中间任一环失败均无法从现有证据区分。
  • 修复方向锚点:
  1. 前置阻塞项:先修复 HarmonyOS Logan 上报链路(任务 T-20261008-142800-9c1e),否则后续所有修复都无法验证
  2. 为 HarmonyOS 回放链路补首帧超时兜底与显式失败提示(与任务 T-20260926-170258-2226 的验证方法合并执行)

5. 根因结论

  • 置信度:🔴 弱
  • 一句话根因:无法给出根因。HarmonyOS 端连续 13 期零 Logan,叠加神策侧缺失可用的 HarmonyOS 回放失败事件,本问题当前只能确认「有用户报看不到」,不能确认失败环节。
  • 关键证据链:仅有一条弱证据——1.1.1.11 版本在本窗口反馈占比 17.6% 且含回放类表述;证据不足以支撑任何根因判断。
  • 明确不成立的推断:不得写成「HarmonyOS 1.1.1.11 回放功能损坏」;也可能是个别设备离线、网络受限或用户操作问题。

6. 建议下一步

  • 分配给:HarmonyOS 端 owner(待定,需按 Logan 上报链路修复的归属确定);上报链路问题建议由 位冬 牵头推动提级
  • 优先处理项:
  1. 把 Logan 零覆盖从 P1 提级为团队级阻塞项(已连续 13 期,该条建议自第 12 期起提出,本期无进展)
  2. 回访 257443(重庆 / CHZ-AL00)确认「看不到」的入口与复现步骤
  • 验证方法:修复 Logan 上报后,取 3~5 名反馈用户复现,按 AddWatchEx 返回值 / 连接类型 / 首帧回调串联核对

本期扫描全量(全部沉淀到知识库)

Markdown 里保留全部反馈(含 -102 等网络问题);HTML 呈现时渲染器会自动折叠 🟣 普遍性网络问题
(含中/英/俄/法/西/葡/土/阿/日多语言网络提示模板),只展示更有价值的条目,无需在本段手工删减。
#关键词反馈数分类处置
2回放·监控画面(不常亮 / 时间轴不同步 / 放大残留 / 没法回放)6🟠 进雷达详细分析见问题 1
3HarmonyOS 可见性 / 离线 / 扣费1🟠 进雷达详细分析见问题 2
4咨询·操作指引(分享、绑定、二维码、初始卡)6🟤 咨询建议已排除
5无效文本(单字、纯符号、乱码)4🟢 无效文本已排除
已折叠 2 条普遍性网络问题(含 -102/-101/-1002 与中/英/俄/法/西/葡/土/阿/日多语言网络提示模板,如 Проверьте телефонную сеть、Please check your mobile network);全量明细见同名 Markdown 知识库。

本期重点反馈明细(非网络类,按时间倒序)

ID时间平台版本机型地区反馈摘要Logan处置
25746017:00iOS8.4.1.6iPhone 26.6河南驻马店报警视频打开都好卡、反应慢、点不开划不动✓🟡 待补证(与第233期问题1同族)
25745015:58Android8.4.1.6realme RMX3461江苏苏州回放是屏幕不是常亮。而且没个头回放时间转换不同步✓🟠 问题 1(直证)
25744615:16Android8.4.1.6vivo V2164A山东临沂一打不开监坑✓(未覆盖问题时段)🟡 待补证
25744315:10Harmony1.1.1.11HUAWEI CHZ-AL00重庆看不到✗🟠 问题 2
25744114:55Harmony1.1.1.11HUAWEI ALN-AL10安徽宣城设备恢复出厂设置后怎么重新绑定✗🟤 咨询
25744014:54Harmony1.1.1.11HUAWEI ALN-AL10安徽宣城设备恢复出厂设置后怎么重新绑定✗🟤 咨询
25743914:45Android8.4.1.6HUAWEI LNA-AL00江苏宿迁普通用户想解绑工程商售后,工程商说无法删除✓🟡 待补证
25743714:19Harmony1.1.1.11HUAWEI安徽合肥输入密码上面显示密码错误不能正常登陆✗🟡 待补证
25743314:12Android8.3.14.2Xiaomi陕西西安建议增加二分屏模式✓🟤 建议
25743214:12Harmony1.1.1.11HUAWEI海南海口.✗🟢 无效文本
25743014:11Harmony1.1.1.11HUAWEI海南海口..✗🟢 无效文本
25742514:04Android8.1.5.3vivo江苏徐州(文本无意义)✗🟢 无效文本
25742213:57Harmony1.1.1.11HUAWEI山西临汾怎么分享给别人微信?✗🟤 咨询
25742113:56Harmony1.1.1.11HUAWEI山西临汾怎么分享给别人?✗🟤 咨询
25741713:16Android8.4.1.6HONOR CMA-AN00山西晋中纯手机号文本✓🟢 无效文本
25741312:47Harmony1.1.1.11HUAWEI河北石家庄二维码看不清了,怎么添加网络✗🟤 咨询
25741212:47Harmony1.1.1.11HUAWEI河北石家庄二维码看不清了,怎么添加网络✗🟤 咨询
25741112:47Harmony1.1.1.11HUAWEI辽宁大连设备离线什么原因✗🟠 问题 2 关联
25740211:32Harmony1.1.1.11HUAWEI ADY-AL00河南信阳怎么样才能让卡初始✗🟤 咨询
25739911:08Android8.4.1.6vivo V2172A山东临沂app卡顿✓(无回放栈)🟡 待补证
25739711:06Android8.4.1.6vivo V2172A山东临沂app✓🟢 无效文本
25739410:57Android8.4.1.6Redmi M2012K11AC广东江门回放放大左下角有画面✓🟠 问题 1(直证)
25739310:37Harmony1.1.1.11HUAWEI河南商丘无缘无故乱扣费✗🟠 问题 2 关联
25738310:00Android8.4.1.6OPPO PHJ110河南开封设备没法回放✓(回放成功,未覆盖失败时刻)🟡 待补证
25738209:36iOS8.4.1.6iPhone 17.3江苏扬州画面杂音太大,无法听清人物对话✓🟡 待补证(音频类)
25737909:34Harmony1.1.1.11HUAWEI ALN-AL10山东临沂为什么有时监控到人走的图像✗🟡 待补证
25737609:02Harmony1.1.1.11HUAWEI河南商丘(文本无意义)✗🟢 无效文本

HarmonyOS Logan 覆盖情况(第 13 期连续零覆盖)
本窗口 HarmonyOS 反馈 15 条,Logan 提供数 0 条(0 / 15)。较上一期的 0 / 16 无改善,T-20261008-142800-9c1e 自第 12 期起建议提级,本期仍无进展。


任务账本联动

任务 ID标题状态处置
T-20260926-170258-576a核查 Android 8.4.1.6 KMP 回放页缺少屏幕常亮导致回放熄屏P1 / captured本期最强证据:257450 Logan 全份 21127 行零 Screen awake,且同 Activity 的 DeviceListPage 有该日志 → 直证回放页从未发起常亮请求。为该问题第 4 期,仍未修复
T-20260922-170415-9496排查 Android 卡回放拖动卡顿与时间跳转异常P1 / captured本期新增直证:257450 日志 timeSec 98 ms 内跳 341 秒、stateTimeSec 冻结 32690,与「时间跳转异常」完全对上
T-20261014-090647-bbbe核查 Android 8.4.1.6 KMP 卡回放误报播放失败:startReplay 与失败事件竞态P1 / captured本期追加证据:257450 / 257394 / 257383 三份 Logan 均出现 receive playback play failed event, result=0(result=0 非失败码),误报为常态
T-20260926-170258-2226排查 HarmonyOS 1.1.1.11 实时预览与回放大范围不可用P1 / captured本期延续(问题 2):257443「看不到」;仍因零 Logan 无法推进
T-20261008-142800-9c1e核查 HarmonyOS Logan 上报链路缺失P1 / captured沿用,第 13 期零覆盖;提级建议已连续 2 期未落地
T-20261015-090316-0dda核查 iOS 8.4.1.6 一键重置密码在授权 token 过期时无重试与恢复(30000126)P1 / captured本窗口无新增同类反馈,维持观察
T-20261014-090651-44e1核查 iOS 8.4.1.6 报警消息列表卡顿P1 / captured本期关联:257460(iOS 8.4.1.6 / iPhone 26.6)「报警视频打开都好卡、点不开划不动」,为该问题第 3 期;该条 Logan 未能覆盖问题时段,维持观察
T-20261014-090651-0bee核查 HarmonyOS 1.1.1.11 设备频繁离线且断电不恢复P1 / captured本期延续观察:257411「设备离线什么原因」,无 Logan
说明一:问题 1 未新建任务,因其为 T-20260926-170258-576a(熄屏)与 T-20260922-170415-9496(时间轴)的同一期同页双证,而非新形态;新增的「缩放不生效」如在下期复现,即独立建单。
说明二:问题 1 新增的关键事实——PlaybackPageRouter.kt:120 的 isCloudReplay 注释并非遗留调试,而是 sheng.tang 2026-07-27 e65cbfa20「参数不携带进入的tab,让KMP控制」的有意移交——该结论已在本期更正,第233期「需 owner 确认意图」一项已闭环。

数据源状态汇总

数据源状态说明
反馈平台✅ 正常total=85 / fetched=85 / complete=true,1 个 tool block 内真实分页拉全,覆盖完整 8h 窗口
心愿单⚠️ 降级本期 login_and_get_wish_list 返回 invalid_grant: 用户名或密码错误,未取到;不影响本期结论(本窗口无产品建议型反馈需要排除),下期重试
神策 NvrDeviceVideoPlayback⚠️ 近乎无覆盖近 7 天仅 3 天有量、日 1~5 次,不足以支撑趋势或分布推断
神策 UCCloudPlayBackResult❌ 无数据查询返回 0 行
神策 PlayBackEvent / MonitorScreenExit❌ 不存在查询返回空列;不得再以这两个事件名取数
神策「回放屏幕常亮」埋点❌ 完全缺失客户端有 SCREEN_AWAKE_TAG 日志但未上报神策,服务端无法量化,已在「待补证」写明
Logan(Android)✅ 有效257450 / 257394 / 257383 三份可下载且覆盖问题动作时刻,问题 1 的两条主证据链由此而来
Logan(iOS)⚠️ 部分有效257460 可下载但未覆盖问题时段
Logan(HarmonyOS)❌ 零覆盖15 条反馈 0 份日志,连续第 13 期
代码定位✅ 正常Android / KMP 仓库在标准路径可读;HarmonyOS 端专属代码未在工作区
友盟⏭️ 未调用本期无崩溃 / ANR / 闪退类反馈,按 skill 规则不查

心愿单亮点

本期心愿单接口认证失败(invalid_grant),未取到数据,故本段空缺。下期恢复后补。

待补证

  1. 回放屏幕常亮缺服务端埋点(问题 1 最大盲区):KuiklyRenderActivity.setKeepScreenOn 只在客户端打 SCREEN_AWAKE_TAG 日志,未上报神策。需在该方法内补一条事件(建议字段:page_name / enabled / applied),否则无法从服务端回答「多少回放会话请求过常亮、多少被拒绝」。
  2. KMP 前端页面调用点需在前端仓库复核:当前工作区为 Android 裁剪视图,setKeepScreenOn 仅见原生桥接分发(KMPBridgeModule.kt:108-113)。「KMP 页面侧完全无调用点」这一结论需 owner 在前端页面仓库确认;但 257450 该次回放确实未发起常亮请求这一事实不受影响。
  3. 缩放链路的具体断点:applyZoomToTimeline(zoomIn=true) → RecordPlayerView.updateTransform(恒为 scale=1.0)之间的参数为何丢失,需 owner 读代码确认是硬编码、被后续事件覆盖,还是两个独立变换体系。
  4. stateTimeSec 语义未确认:拖动过程中 stateTimeSec 冻结在起始值是设计如此(松手后才提交)还是缺陷,需 owner 明确后才能定修复方案。
  5. HarmonyOS Logan 零覆盖连续 13 期:需服务端 / 客户端共同定位上报链路断点,提级建议已连续 2 期未落地。
  6. 心愿单接口认证失败:login_and_get_wish_list 返回 invalid_grant: 用户名或密码错误,需核对 ~/.openclaw/secrets.json 中 seetong-feedback 凭据;反馈列表接口同期使用相同凭据正常,故疑为心愿单接口单独鉴权变动。
  7. isCloudReplay 移交后的语义未验证:e65cbfa20 明确把 tab 选择权移交 KMP,但 257450 日志 resolveSavedPlaybackTabForCurrentDevice ... supportCloud=false, savedTabIndex=1, targetTabIndex=1 的组合在 supportCloud=false 时是否合理,需 owner 确认。

下一期 = 第235期 = 2026-10-16-H09(明天早上 9:00;窗口 今日 17:00 ~ 明日 09:00)

🗂️历史期次

查看全部历史期次(近 90 天)→