修复
- PGC(番剧)播放黑屏——彻底修复:经过 alpha.9–alpha.19 多轮调试,定位到真根因:PGC 季详情接口
/pgc/view/web/season的 payload 包在根级result字段下(和 PGC playurl 一样,BV 的BiliResponse.getResponseData()也是data?:result),而getSeasonInfo/getPgcVideoMetadata只读data→ 拿到 null → 季详情加载失败 → PGC 卡在季详情页「正在加载…」根本进不了播放器。修:两处都改成读data ?: result。PGC 现在能正常加载季详情、进播放器播放。
改进(本轮 alpha 累积)
- 实时日志(alpha.11/14):常驻滚动 logcat 写
logs_live.log,上限 10MB 丢弃最旧,每行 flush;设置→日志可查看/分享,播放器诊断叠层实时滚动。 - 播放器日志叠层(alpha.13–16):开关开启后,播放器/季详情页把实时日志 + 内存态(state/step/请求信息)盖在画面上,黑屏时直接排查,不用退出。
- PGC 起播超时兜底(alpha.14):HTTP 客户端加
callTimeout(15s),launch 协程包withTimeoutOrNull(30s),季详情 fetch 包withTimeoutOrNull(20s)——不再无限卡 Loading,超时跳 Failed。 - PGC playurl SDR fnval + 排除杜比视界(alpha.10):PGC 用 SDR fnval,轨道选择排除 dvhe/未知 codec。
- PGC playurl 用 MergingMediaSource(alpha.12):对齐 BV,绕开合成 DASH MPD 的 SegmentBase 拼接风险。
- 网络层 Referer 对齐 BV(alpha.18):
https://www.bilibili.com(去尾斜杠)。
调试基础设施
- 季详情/播放器 fetch 异常不再被吞,错误码显示在叠层
ERR:行 + 失败页。 - PGC 季详情 fetch 区分「真超时」/「返回空(data=null)」/「异常」三种失败模式。