mirror of
https://github.com/Silent1566/webhtv.git
synced 2026-10-18 07:09:16 +00:00
fix(osd): 屏显诊断重缓冲计数按引擎正确分派,IJK 不再恒为 0
PlayerOsdController.getDiagnostics() 的分派条件写成了「是否 MPV」: int rebufferCount = player.isMpv() ? player.getRebufferCount() : snapshot.rebufferCount(); 而真实前提是「有没有 Exo analytics 快照」(即是否 Exo)。非 Exo 时 snapshot 为 Snapshot.empty(),于是 IJK 落到快照分支,重缓冲次数与总时长恒为 0。 PlayerManager.getRebufferCount()/getRebufferTotalMs() 本身是引擎无关的 (PlaybackBufferingTracker + MPV disc 计数),非 Exo 早有可用取数器,只是 IJK 没走到。 改为按 isExo() 分派:Exo 行为不变,IJK/MPV 读引擎无关追踪器。这是排查工具读数错误而非 播放缺陷——本系列排查「转圈」时曾据该读数给出无效建议,修掉后诊断面板对三种内核都可信。 Verification: :app:compileMobileArm64_v8aDebugJavaWithJavac 成功;:app:testMobileArm64_v8aDebugUnitTest 定向跑 PlayerDisplaySettingSyncTest 7/7(含新增 playerOsdDiagnosticsReadRebufferCountPerEngine)、 VideoActivityLayoutTest 154/154、TmdbDetailActivityLayoutTest 130/130 全绿。新断言对 base 源码必然 变红(base 表达式含 player.isMpv() 而不含 player.isExo())。过程中自查 git diff 发现并修回了新增 用例时误将签名与首行拼接成一行的问题。 Task-Guard: OSD-REBUFFER-ENGINE-BRANCH-20261009 Verification: compileMobileArm64_v8aDebugJavaWithJavac OK; PlayerDisplaySettingSyncTest 7/7 (incl. new playerOsdDiagnosticsReadRebufferCountPerEngine), VideoActivityLayoutTest 154/154, TmdbDetailActivityLayoutTest 130/130 all green; new assertion provably red at base (expression used player.isMpv()); accidental joined-line regression found via diff review and repaired before verification Task-Guard: OSD-REBUFFER-ENGINE-BRANCH-20261009
This commit is contained in:
parent
d7b9439201
commit
f2ccce36c9
3 changed files with 86 additions and 3 deletions
Loading…
Add table
Add a link
Reference in a new issue