Skip to content

Pure Live v3.1.2

Choose a tag to compare

@wzgrx wzgrx released this 31 Aug 12:45
· 43 commits to master since this release

Pure Live v3.1.2

v3.1.2 build 4115 是 Android / Windows 全屏一致性与平台接口韧性补丁。本轮没有同步上游代码;Windows 根因来自隐藏标题栏初始化与 window_manager 0.5.2 原生 frameless 状态的交互,不是 v3.1.1 多画面业务代码。旧版会把 Dart 侧标记为全屏,但原生窗口没有改变样式或边界,因此仍保留标题栏、任务栏和普通页面布局。

Windows 真全屏

  • Windows 进入全屏前重新应用同一隐藏标题栏样式,清除插件原生层遗留的 frameless 阻断状态,再执行系统全屏边界切换。
  • 全屏窗口现在覆盖当前显示器完整区域;标题栏、任务栏和普通直播间侧栏不会继续占位。
  • Escape 退出后,普通窗口精确恢复进入前的位置和尺寸;从最大化进入时恢复原最大化状态。
  • macOS、Linux 继续直接调用既有全屏路径,不执行 Windows 专用准备步骤。

网易 CC 分类接口迁移兼容

  • 完整回归发现 CC 旧分类 JSON 地址已在部分网络直接跳转到网易官方 ds.163.com/glive HTML 页面;旧实现会在 jsonDecode 处终止分类页加载。
  • 分类解析改为防御式合同:旧 JSON 仍可解析全部游戏子分类;遇到官方迁移跳转、HTML、空响应或部分 schema 时保留“全部 / 端游 / 手游 / 其他”稳定入口,推荐直播、搜索、房间和播放链路互不连带失败。
  • 公开接口探针同时识别旧 JSON 合同与官方 Glive 迁移目标,仍会拒绝第三方重定向和未知 HTML;新增解析回归覆盖 HTML 回退与旧 JSON 分组。

回归与运行验证

  • 新增 test/windows_fullscreen_transition_test.dart,锁定 Windows 的“标题栏准备 → 原生全屏”调用顺序,并验证其他桌面平台不执行 Windows 专用步骤。
  • 聚焦 Analyze 为 0 issue;Windows 全屏与 PiP 呈现测试 4/4 通过,记录为 20260831T091722185Z-quality-focused.json
  • Windows Debug 在 3840×2400、250% 缩放、200 Hz 显示器完成真实直播复验:全屏截图从普通窗口 1155×703 或最大化 1536×912 变为完整显示器 1536×960;原生窗口边界为 (0,0)-(1536,960)
  • 普通窗口全屏往返后边界精确恢复为 (188,104)-(1347,809);最大化往返后 IsZoomed=true,进程全程响应。
  • Android arm64-v8a、Windows x64 安装程序和便携 ZIP 从同一冻结提交串行构建,并附构建元数据与 SHA-256。

证据与边界

  • 完整根因、旧/新行为、验证矩阵和回滚点见 docs/STAGE_UPDATE_3_1_2.md
  • 本修复解决 Windows 原生窗口进入全屏失败;平台直播接口、主播下播、CDN 波动和账号风控仍按各平台运行时诊断处理。

发布后正式包复验(2026-08-31)

  • Android:PJZ110 / Android 16 覆盖升级保留关注数据;10 次冷启动全部成功,293~332 ms、平均 306.2 ms,0 FATAL/ANR。分类/搜索标签硬边界、网易 CC 官方 HTML 迁移回退、120 Hz 三档即时切换与冷启动持久化均通过。
  • Twitch:直连搜索明确显示局部失败;临时启用手机可达的本机 Clash 应用代理后,Twitch 原生搜索和在线人数正常。测试结束已恢复原代理地址及关闭状态。
  • Windows:3840×2400、200 Hz 环境确认三档刷新率即时生效和持久化;普通窗口、最大化两条真全屏往返均覆盖完整显示器并精确恢复,播放和弹幕持续。
  • 详细证据已更新到 master:ANDROID_RUNTIME_AUDIT_3_1_2.mdWINDOWS_RUNTIME_AUDIT_3_1_2.mdACCEPTANCE_MATRIX_3_1_0.md
  • Release 二进制和源码标签仍对应冻结提交 4d79e5f;发布后运行审计文档提交为 �4e40124,没有替换安装包内容。