Seetong · Report

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

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

📌TL;DR 核心要点

  • 🟠 Android 8.4.1.6 海外预览出现 HEVC 解码器零宽高初始化失败。用户连续 3 次反馈“国内能看、国外看不了,加载不动”;附件日志在 15:25:08 直接记录 width=0、height=0 被传给 MediaCodec,随后以 BAD_VALUE 失败,调用链落在 PreviewPlayerView.playVideo → LibImpl.onMsgRspAddWatch → PlayCtrlAgent.OpenStreamAgent。同一日本地区当天仍有 647 次设备连接事件、295 名用户,暂不支持“区域整体不可用”,严重度 90 / 100,根因置信度 中。
  • 反馈 259684:2026-10-26 14:05:38,Android 8.4.1.6,OPPO PKU110,日本茨城县,原文为“国内观看正常,国外看不了,加载不动”。
  • 反馈 259686:14:12:16,同一用户原始为“国内可以看。国外不可以”。

🔥最近一个月 Top 问题

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

#问题(严重度降序)严重度平台版本负责人问题原因
1HarmonyOS `1.1.2.3` 多用户离线与核心视频链路失效
21 期 · 175 条反馈
100Android · HarmonyOS1.1.1.11 / 8.4.1.6 / 1.1.2.3陈宝旺、唐胜、冉博麟、谭伟HarmonyOS 客户端把 P2P 瞬时离线写成本地持久状态,并在后续在线判断中优先使用这个旧值,可能导致设备已恢复在线却仍显示离线;回放离线态和播放错误透传不足则放大了用户的“看不到画面”体验。
2Android `8.4.1.6` HEVC 预览以零宽高启动解码器
1 期 · 3 条反馈
90Android8.4.1.6张威、唐胜、谭伟Android 8.4.1.6 在首次 TPS_AddWachtRsp 尚未提供有效 HEVC 宽高时,仍立即调用 OpenStreamAgent 创建 MediaCodec,系统以 BAD_VALUE 拒绝零宽高配置,而客户端没有等待后续媒体参数或建立明确失败终态。
3Android 与 iOS 8.4.1.6 报警功能突然失效与通知不达
1 期 · 3 条反馈
90Android · iOS8.4.1.6唐胜、许源现有客户端样本表明 Android 通知权限与 token 注册均成功,故障更接近“服务端未生成报警或推送任务未送达”,但神策缺少报警生成与推送到达事件,iOS 样本又混合了通知权限关闭,当前不能完成单点定因。
4HarmonyOS 画中画状态导致切换设备后仍显示前一路画面
1 期 · 3 条反馈
90HarmonyOS1.1.1.11 / 1.1.2.3张跃译多个 HarmonyOS 画面共享一个无代次、无串行化、无旧控制器清理的 PipManager,切换设备时旧创建任务和新选择竞争,最终把第一路 XComponent、savId 或恢复状态保留下来。
5升级后回放体验整体退化
5 期 · 20 条反馈
85Android · HarmonyOS · iOS8.4.1.6 / 1.1.2.3 / 8.3.14.2唐胜、许源、欧阳荣、谭伟8.4.1.6 对回放链路做了多处改动(时间条 UI、通道切换进度对齐、报警-录像联动),导致回放体验多点退化;Logan 显示取流层无崩溃,问题在"UI/状态对齐 + 报警录像关联"而非连接失败。
6KMP 回放页未申请屏幕常亮,回放中手机自动息屏
12 期 · 31 条反馈
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,回放过程中发生系统级息屏。
7Android 实时预览无首帧却被标记为“视频播放中”,并无限重试
6 期 · 14 条反馈
80Android · iOS8.4.1.6 / 8.4.1.4唐胜、欧阳荣、谭伟、张威预览页把“取流请求已提交”或“设备在线状态消息”误当成播放成功,而没有把首帧到达作为唯一成功门禁;add_watch_result=-1 后仍持续 10 秒重试并显示“视频播放中”,导致用户长时间等待且无法获得明确失败反馈。
8SD 卡跌至不可读写或反复未初始化,录像回放被直接阻断
3 期 · 9 条反馈
80Android · HarmonyOS · iOS8.4.1.6 / 1.1.1.11唐胜、张威、陈宝旺设备上报的 SD 卡状态在 258245 中持续处于未初始化/格式化中,在 258173 中由正常可读写跌至不可读写;App 按协议正确展示异常,根因更可能在 SD 卡、卡槽/供电、设备存储控制器或固件挂载逻辑,而不是 KMP 页面误报。
9iOS `8.4.1.6` 云回放卡顿,首帧与失败状态可能被提前结算
2 期 · 8 条反馈
80Android · iOS8.4.1.6 / 8.3.11.3 / 8.4.106陈宝旺、欧阳荣、谭伟iOS 云回放容器允许解析完成后在 1.2 秒无首帧时提前向 KMP 返回成功,同时把 IJK 播放错误与正常结束合并处理,导致页面对真实卡顿、缓冲超时或解码失败缺少准确状态和可回溯证据;这是高度可疑的共同客户端缺陷,但仍需复现确认其是否为 3 名用户的直接主因。
10iOS 8.1.2.4 微信登录授权码重复提交触发 30100225
1 期 · 3 条反馈
80iOS8.1.2.4 / 8.1.204 / 8.4.106待定微信回调与恢复登录没有一次性 state、幂等锁和授权码消费机制,重复回跳或重试会把同一个单次授权码再次发给服务端,服务端以 30100225 拒绝后客户端仍保留旧状态。

问题 1:Android 8.4.1.6 HEVC 预览以零宽高启动解码器 | 负责人:张威、唐胜、谭伟

现象与覆盖范围

  • 反馈 259684:2026-10-26 14:05:38,Android 8.4.1.6,OPPO PKU110,日本茨城县,原文为“国内观看正常,国外看不了,加载不动”。
  • 反馈 259686:14:12:16,同一用户原始为“国内可以看。国外不可以”。
  • 反馈 259689:14:28:29,同一用户原始为“国内能看,国外看不了”,并上传设备日志。
  • 三条反馈在 23 分钟内连续提交,问题稳定复现于同一用户、同一手机、同一网络位置;用户上传的附件日志覆盖 15:16~15:28,能够看到实际播放入口和解码失败现场。
  • 严重度评分:90 / 100。反馈量 20(3 条)、共性广度 30(Android、8.4.1.6、OPPO PKU110、摄像机 TD53E30、日本)、业务关键度 40(远程实时查看主链路)。
  • 去重判定:近 24 小时未分析过“HEVC 零宽高初始化”问题,也不是第255期 iOS KMP 回放卡死问题的同一代码路径,因此本期独立进入雷达。

神策证据

  • Android 8.4.1.6 在日本当天共有 647 次 DeviceConnectResult、295 名用户,连接类型分布为 SRFLX、RELAY、LOCAL,说明日本地区并非整体断网或服务不可达。
  • 同手机型号 PKU110、同版本、同国家的账号当天有 12 次 DeviceConnectResult、1 名用户;SiotDevConnectResult 为 32 次、1 名用户,其中 RELAY 26 次、SRFLX 6 次。连接链路有活动,问题发生在媒体参数进入客户端解码器之后。
  • 故障设备动态 ID 39120867 在 MonitorFrameResult/NvrMonitorFrameResult 中,10 月 23 日有 1 次出图记录,10 月 24 日与 10 月 26 日均为 0。该证据只能说明本周该设备出图稀少,最终根因仍以同用户附件日志和源码为准。
  • 当天所有 NvrMonitorFrameResult 共 14,421 次 / 56 名用户,服务仍有正常出图样本;NvrMonitorFrameResult 未提供可用于该样本的完整版本、国家等公共字段,因此没有把全量性能均值当作单设备结论。

Logan 关键日志

  • 反馈 259689 附件为 seetong_logcat_1.log,共 10,133 行,覆盖 2026-10-26 15:16:05~15:28。
  • 15:25:08.764 记录 playVideo: 39120867 playVideo isPlayerStarted:false,用户从设备页进入摄像机 TD53E30 的实时预览。
  • 15:25:08.967 MediaCodec 配置参数明确出现:

string mime = "video/hevc"、int32_t width = 0、int32_t height = 0。

  • 15:25:08.969 连续出现 Codec reported err 0xffffffea/BAD_VALUE 与 configure failed with err 0xffffffea。
  • Java 栈为:

PlayCtrlAgent.OpenStreamAgent → LibImpl.onMsgRspAddWatch(LibImpl.java:5188) → LibImpl.doMsgRspCB(LibImpl.java:3249) → FunclibAgent.AddWatchEx → LibImpl.addWatch(LibImpl.java:1538) → LibImpl.startPlay(LibImpl.java:542) → PreviewPlayerView.playVideo(PreviewPlayerView.kt:528)。

  • 15:25:18.573 同一设备执行 StopWatchAgent,从 AddWatch 到停止约 9.6 秒;日志中没有该设备首帧完成记录。随后用户连续切换多个设备,仍多次出现 AddWatch 后数秒 StopWatch。
  • 日志没有显示 -102、-101 或明显的 P2P 认证失败。当前首要失败点是 Android 客户端把零宽高媒体参数送入了系统 HEVC 解码器。

代码定位

  • 涉及模块:Seetong-App-Android/Seetong5.0ForSeetong/Seetong5.0/app/src/main/java/com/seetong/app/seetong/sdk/impl/LibImpl.java、ui/view/video/PreviewPlayerView.kt、ui/view/video/PlayerControllerImpl.kt。
  • LibImpl.java:5188-5279:onMsgRspAddWatch 解出 TPS_VIDEO_PARAM tvp 后直接序列化并调用 OpenStreamAgent,没有校验 video_encoder、width、height 或 config 是否完整。
  • LibImpl.java:5210-5232:代码已经识别 SIOT 设备可能“先返回无宽高媒体参数,再返回有宽高参数”,但这段补丁只在重复回调进入同一编码器分支时执行。首次回调若 lastAddWatch 为空,会绕过该分支并直接用零宽高创建解码器。
  • LibImpl.java:5279-5293:首次 OpenStreamAgent 失败后仅等待 100 ms,再用同一个 videoParam 重试;当参数本身仍为零宽高时,重试不能恢复。
  • LibImpl.java:5252-5253:创建解码器前就写入 VIDEO_STATE_START 并通知渲染层,导致上层可能先进入“启动中”状态,之后没有首帧也没有明确终态。
  • LibImpl.java:5297:异步打开流失败时仅通过 setTipText 发通用媒体参数错误;入口 LibImpl.addWatch 早已返回 AddWatchEx 的同步结果,调用方不能据此确认首帧或解码成功。
  • PreviewPlayerView.kt:528:播放器入口把异步 startPlay 的即时结果作为后续 UI 判断依据;后续 OpenStreamAgent 抛错不会转换成同一套可见的失败状态。
  • PlayerControllerImpl.kt:60-92:控制器捕获同步异常并返回 -1,但本次异常发生在其调用栈之下、稍后的原生回调线程中,现有 try/catch 覆盖不到。
  • 代码责任锚点集中在 LibImpl.onMsgRspAddWatch 的媒体参数门禁,近期相关零宽高兼容修改为 1d35eceb3,作者为张威。当前分支 feature_v8.4.2、HEAD 311a8b8db,工作区无未提交改动。

根因结论

  • 置信度:🟡 中。技术失败链有日志和源码双重直证,但暂只有 1 名用户、1 台手机和 1 台摄像机样本。
  • 一句话根因:Android 8.4.1.6 在首次 TPS_AddWachtRsp 尚未提供有效 HEVC 宽高时,仍立即调用 OpenStreamAgent 创建 MediaCodec,系统以 BAD_VALUE 拒绝零宽高配置,而客户端没有等待后续媒体参数或建立明确失败终态。
  • 关键证据链:三条同用户连续反馈稳定描述海外加载不动 → 附件日志在对应时间进入预览 → MediaCodec 明确收到 1920 以外的零宽高配置并报 BAD_VALUE → Java 栈精确落在 onMsgRspAddWatch → OpenStreamAgent → 源码在传参前无宽高校验,且首次回调绕过已有 SIOT 零宽高更新分支。
  • 明确不下的结论:不能认定所有 Android 8.4.1.6 用户在海外都会出现该问题,也不能把问题归因于日本网络整体故障。现证据支持的是特定设备媒体参数时序触发客户端解码初始化缺陷。

建议下一步

  • 分配给:张威修复 SDK 桥接与媒体参数状态机,唐胜复核预览入口、错误终态和切设备行为。
  • 优先修复:在 LibImpl.onMsgRspAddWatch 调用 OpenStreamAgent 前增加硬门禁,编码器为空、宽高任一为 0 或配置缺失时保持等待态,禁止创建 MediaCodec;只有收到完整参数后才启动解码,并设置与首帧关联的超时。
  • 状态建模:把 ADD_WATCH_REQUESTED → MEDIA_PARAM_PENDING → DECODER_OPENING → FIRST_FRAME → FAILED/STOPPED 拆成互斥状态。零宽高首包只能缓存,不能把 VIDEO_STATE_START 提前广播为可播放。
  • 错误透传:把 IllegalArgumentException、BAD_VALUE、播放器重试次数、编码器、宽高、摄像机型号和请求代次上报专用事件;同一参数重试不得无条件执行。
  • 兼容策略:若设备持续只返回零宽高,可根据设备能力或历史参数使用受控回退,但必须标注 fallback=true 并带独立失败码,不能静默伪装成功。
  • 回归矩阵:Android 8.4.1.6 + OPPO PKU110 + TD53E30、国内与日本网络、主码流与子码流、H.264 与 HEVC、零宽高后补全参数、重复 AddWatch、快速切设备、前后台切换。验收要求首帧前不进入播放态,失败时 10 秒内出现明确错误,且无残留解码线程。
  • 回访:联系反馈 259684/259686/259689 对应的同一用户,补采国内正常与日本失败两组 Logan,确认问题是否只在跨境 RELAY/SRFLX 路径触发,还是零宽高参数在任意网络下均可复现。
  • 任务账本:已登记 T-20261026-171007-2f49,状态 P1 / captured。

本期扫描全量

分类与处置反馈数主要反馈 ID 或说明
🟠 Android HEVC 零宽高导致海外预览失败,进入问题 13259684、259686、259689
🔁 24 小时内已分析或同功能族线索4259668、259678、259711、259712;分别关联回放或离线既有问题族
🟡 单点设备、账号、固件、配置或安全咨询17包含 259674 密码重置 30000213、259715/259698 恢复出厂设置、259703/259702 SD 卡未初始化、259710 安全疑虑等
🟤 产品建议、使用咨询、信息不足或无效文本4包含 259692 分享咨询、259664 “不现象”、259658 “Y”等
已折叠 1 条普遍性网络问题(含 -102/-101/-1002 与中/英/俄/法/西/葡/土/阿/日多语言网络提示模板,如 Проверьте телефонную сеть、Please check your mobile network);全量明细见同名 Markdown 知识库。
反馈接口返回 total=70 / fetched=70 / complete=true / pages=2。上表按主问题唯一归类,合计 70 条;应用市场本窗口 0 条,故未形成跨渠道问题簇。259674 的 30000213 在源码中定义为“用户手机号不匹配”,属于可解释输入错误,不作为密码重置功能故障。259710 的附件仅显示账号正常自动登录和 1 台设备离线,没有共享记录、异地登录或异常控制指令,保留为账号安全待核查,不升级为确定入侵事件。

应用市场反馈

  • 华为应用市场 0 条、应用宝 0 条,评论总数 0 条、差评 0 条、中评 0 条,未形成问题簇。
  • App Store 采集失败:Apple 限流,且未配置 ASC Key;Google Play 采集失败:未配置代理。
  • 荣耀应用市场、vivo 应用商店、OPPO 软件商店、小米应用商店均待导入,不能视为“没有反馈”。
  • 原始数据:/Users/topsee/.openclaw/workspace/knowledge/appstore-feedback/raw/2026-10-26.json。

心愿单与产品信号

  • 心愿单接口返回 total=4 / fetched=4 / complete=true。
  • 5523 建议定时切换看守视角,属于可产品化的值守场景;5521 希望设备离线后自动重连,与本窗口多语言网络反馈及设备在线状态问题相关;其余为无信息文本或联系方式,未进入雷达。

数据源状态与待补证

数据源状态说明
自有反馈接口✅ 正常total=70 / fetched=70 / complete=true / pages=2
应用市场⚠️ 部分失败华为 0、应用宝 0;App Store 因限流及缺少 ASC Key 失败;Google Play 因未配置代理失败;荣耀、vivo、OPPO、小米待导入
神策⚠️ 部分可用地区、手机型号、连接类型与设备出图量查询成功;NvrMonitorFrameResult 缺少该样本的完整版本、国家等公共字段
Logan⚠️ 部分可用259689 附件 10,133 行可读,确认 HEVC 零宽高与解码异常;259684/259686 无独立 Logan
友盟⏭️ 未查问题表现为加载无画面,不是崩溃、ANR、闪退或卡死
TAPD⏭️ 未查当前有直接 Logan 和源码链路,不以历史 Bug 搜索替代现场证据
代码仓✅ 已核对Seetong-App-Android 当前 feature_v8.4.2、HEAD 311a8b8db,工作区干净
任务账本✅ 已登记T-20261026-171007-2f49,P1 / captured

待补证

  • 补采同一用户在国内正常网络与日本失败网络下的成对 Logan,区分“零宽高参数首包”与跨境连接时延的先后关系。
  • 确认故障摄像机 TD53E30 的固件版本、主码流编码配置和 HEVC profile;现有日志已能确认字段为零宽高,但无法确认设备为何先返回空参数。
  • 核验线上 8.4.1.6 包与本仓库 feature_v8.4.2 源码的二进制映射,避免仅凭当前分支推断线上修复状态。
  • 259710 的账号安全疑虑需要账号安全负责人私下核实共享成员、登录设备和设备访问记录;未证实前不得对外描述为“摄像头已被控制”。

下一期 = 第257期 = 2026-10-27-H09.md(明天早上 09:00;窗口 2026-10-26 17:00:54~2026-10-27 09:00)

🗂️历史期次

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