Skip to content

Pure Live v3.0.24

Choose a tag to compare

@wzgrx wzgrx released this 30 Aug 16:35
· 60 commits to master since this release

Pure Live v3.0.24

v3.0.24 build 4112 集中交付虎牙现网播放会话、Windows 长播连续性、直播状态、多画面离线空态和录制续租修复。本轮串行发布 Android arm64-v8a 与 Windows x64 安装包;Android 使用平台原生播放路径,Windows 对虎牙短连接增加首帧门控的双播放器暖切换。

虎牙匿名取流与服务器会话

  • 对齐虎牙当前网页匿名观看流程:账号登录只改变观众 UID/Cookie,匿名观看仍可使用;主播 UID、网页观众 UID 与 Windows HYSDK 身份彻底分离。
  • 保留 64 位观众 UID,高 32 位不再被截断;TARS UA、iAppId=66iLoopTime=0、FLV/HLS 独立 AntiCode 和线路顺序均按当前官方播放器合同锁定。
  • AntiCode 改为在服务端完整 fm 模板原位替换占位符;模板畸形、签名过期或单线路失败只淘汰对应候选,不再清空同一快照中的其他健康线路。
  • 综合 wsTime、WUP iExpireTimeseqid 签发时间和活动传输寿命判断刷新边界;同一个旧 URL 不会因晚读取元数据而获得新的有效窗口。
  • 匿名登录瞬态失败不再永久缓存临时身份;随机 UID 生成保持在 Dart 合法范围,后续请求可重新取得官方匿名身份。

Windows 长播无黑场续接

  • 虎牙活动传输按本地 40 秒与服务器声明刷新点中的较早值启动候选连接;候选完成 DNS、TLS、解复用并实际呈现首帧后才接管,旧画面在提交前持续显示。
  • 固定复用两个 MediaKit/D3D 输出交替续接,旧 session 的迟到 complete/buffering/error 由代次栅栏丢弃;相同 URL 的死亡传输也会真正重新打开。
  • 0×0 或首帧超时的候选只释放候选自身,不替换最后一个有效纹理;覆盖页面返回时强制重新提交 viewport,隐藏期间暂停呈现帧看门狗而不破坏网络、音频和弹幕会话。
  • 原生帧探针只发布帧进度,不再逐帧重复广播相同播放状态;暖机后的播放器、VideoOutput 与 Texture 数量保持固定,减少换源抖动和资源增长。

直播状态、多画面与返回

  • 卡片、进入房间和多画面统一使用权威直播状态;明确下播、接口未知和解析失败分开表示,应用冷启动及恢复前台会重新核验,旧的“正在直播”缓存不会继续冒充当前状态。
  • 多画面加入下播房间时显示可重新选台的业务空态,不请求画质或播放地址,也不创建原生播放器;替换为开播房间后再初始化并成对释放资源。
  • Windows 离线直播页保持页面级 Escape 返回;播放器尚未创建时不会读取残留的全屏状态或注册无效音量、录制快捷键。

录制租约与恢复

  • 原生输入建立后的 startAck 成为续租计时边界;刷新点前预取同画质、同线路的新签名,到点静默切换输入,不把租约续接误报为用户停止、下播或录制失败。
  • 每次输入使用独立目录和前缀,上一轮 TS 先登记为持久化待处理组,新输入优先建立;真正停止录制后再统一封装,避免同步 remux 造成十余秒录制缺口。
  • 任务 schema 升级并保存待处理产物,异常退出后仍可继续整理;诊断只记录脱敏后的时间边界和失败分类。

验证与证据边界

  • 虎牙当前房间的 5 条 CDN、FLV/HLS 共 10 个入口完成媒体头探测;Windows 公开房间完成 8/8 次提前续接,后 7 次暖切换耗时约 0.5~1.8 秒,第 8 次提交后仍持续出帧。
  • Windows 虎牙录制连续 342 秒并跨越三次主动输入切换,最终 4 个 H.264/AAC MP4 总时长与界面累计一致,残留 TS 为 0。
  • 最终源码 flutter analyze 为 0 issue,完整 Flutter 回归 661/661、公开接口探针 42/42 通过;Android APK 内容门禁与 Windows 安装器/便携包继续按产物阶段独立核验。真实服务器和极端网络仍按脱敏诊断继续观察。