304 判定没有排除 Range 请求:视频第二次打开时浏览器同时发 Range + If-None-Match,命中 304 拿到空响应 ⇒ 黑屏。 改成 $hasRange 为真时跳过 304。顺手补 Last-Modified(部分浏览器需要它才允许 seek)。 另查明用户的视频是 H.265/HEVC,Chrome/Firefox 无法解码 —— 浏览器端无解, 检测到解码失败时显示提示卡片 + 下载入口,不再给一块黑屏。
304 判定没有排除 Range 请求:视频第二次打开时浏览器同时发 Range + If-None-Match,命中 304 拿到空响应 ⇒ 黑屏。 改成 $hasRange 为真时跳过 304。顺手补 Last-Modified(部分浏览器需要它才允许 seek)。 另查明用户的视频是 H.265/HEVC,Chrome/Firefox 无法解码 —— 浏览器端无解, 检测到解码失败时显示提示卡片 + 下载入口,不再给一块黑屏。