From a1140437a13145dc0bc24a1dc70ecf6099e5e2c3 Mon Sep 17 00:00:00 2001 From: laoyang Date: Thu, 5 Nov 2026 12:40:52 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=86=E9=A2=91=EF=BC=9A=E4=BF=AE=20media.ph?= =?UTF-8?q?p=20=E7=9A=84=20304/Range=20=E5=86=B2=E7=AA=81=EF=BC=8CHEVC=20?= =?UTF-8?q?=E8=A7=A3=E4=B8=8D=E4=BA=86=E6=97=B6=E7=BB=99=E6=98=8E=E7=A1=AE?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=20(#52)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 304 判定没有排除 Range 请求:视频第二次打开时浏览器同时发 Range + If-None-Match,命中 304 拿到空响应 ⇒ 黑屏。 改成 $hasRange 为真时跳过 304。顺手补 Last-Modified(部分浏览器需要它才允许 seek)。 另查明用户的视频是 H.265/HEVC,Chrome/Firefox 无法解码 —— 浏览器端无解, 检测到解码失败时显示提示卡片 + 下载入口,不再给一块黑屏。 --- assets/css/app.css | 174 ++++++++++++++++++++++++++++++++++++++++++- assets/js/preview.js | 33 ++++++++ media.php | 22 +++++- 3 files changed, 225 insertions(+), 4 deletions(-) diff --git a/assets/css/app.css b/assets/css/app.css index d5368f8..2588d68 100644 --- a/assets/css/app.css +++ b/assets/css/app.css @@ -2412,7 +2412,19 @@ body[class] .semi-datepicker-day-inhover { background-color: color-mix(in srgb, max-width: 92vw; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 8px; } -.pv-video { max-width: 92vw; max-height: 100%; width: auto; height: auto; background: #000; } +/* 🔴 2026-11-05 修:视频打开后是黑的(用户:「点开之后是黑的,没办法播放」)。 + 原因:`max-height: 100%` 依赖父级的**确定高度**,而 `.pv-stage` 是 + flex + `align-items:center`,百分比高度解析不出具体像素 + ⇒ `