上一版修掉的「令牌被判无效」已确认生效;这一版处理它暴露出来的下一层问题 —— 采集回来的会话材料只提供浏览器当时自己选的那两档,而我们固定要另外两档,两边永远对不上,会话每次都在 20 秒内被判废。本版让「只采到占位令牌」的采集结果直接作废,把播放交回我们自己的会话(它提供的才是我们要的档位)。
变更
- 采集结果只拿到「占位令牌」时不再使用(P11-142)。网页在选定档位之前会先发一个占位令牌(实测 10 字节);等不到真令牌(实测 88 字节)时,此前会把这份占位结果当会话材料用掉 —— 后果有两个:① 服务端全程回「等待验证」(实测一场 114 次),永远进不了正常状态;② 更关键的是它顶掉了我们自己那条路(用材料建的会话只提供浏览器那一场绑定的档位)。现在这种结果直接丢弃,播放改用我们自己的会话。
进展与已知问题
- 上一版修复已确认生效:服务端的「令牌无效」判决从 22 次降到 0 次,令牌刷新日志也回到正确的编码比例(如
468B → 349B,恰好 3/4 = 已解码)。 - 用材料建的会话仍有一个未解问题:即便拿到真令牌的材料,它提供的档位仍是浏览器那一场绑定的 —— 实测一场里视频数据正常到达(1.7MB + 3.8MB)、服务端状态也正常,但我们的音频档从头到尾没有被提供过,最终仍被判废。本版先绕开它(改用我们自己的会话),材料会话的档位对齐留到下一轮。
- 代价:丢弃占位材料后,程序会再试一次采集,然后才回落到自己的会话 —— 起播大约多 6 秒。
- 采集到的令牌本身还有一个待查问题:程序自己铸出来的令牌呈「占位形态」(刷新日志里字节数单调增长
154 → … → 1324,每次 +65,首字节恒为同一值并带自增计数),不是签名过的真令牌。这条单独跟进。 - WEB-SABR 仍不作为日常播放主路;会话被判死时会自动换到能播的路线(alpha.11 起)。