附件:视频卡片显示画面缩略图(迷你 video 预览,只拉视频头部)
视频卡此前只有 🎬 图标。现在卡片里放一个静音迷你 <video preload="metadata">:
浏览器只通过 media/show 拉视频头部几个 Range 区间就显示第一帧画面,
充当缩略图;点击行为不变(仍进灯箱播放)。老视频无需任何处理,
视频解不出来时 video 透明,露出下面的类型图标。
为什么不在服务端用 ffmpeg 抽帧:线上 FPM 的 open_basedir 只允许
/www/wwwroot/trip.yangyq.net/:/tmp/,且 disable_functions 禁了 exec()
(注意 CLI 与 FPM 的 php.ini 不同,只查 CLI 会得出错误结论)——
放开这两项需要 root 且弱化安全配置。迷你预览方案零后端、零数据、全兼容。
已验证:本地全链 11 步全绿(渲染检查 321 项);远端 e2e 324 项 0 失败
(夹具改用服务器静态 ffmpeg 生成真实编码视频);部署后双 PHP 渲染逐字节一致。
This commit is contained in:
@@ -155,7 +155,13 @@ $iconByMime = [
|
||||
<?php if ($isImg): ?>
|
||||
<img src="<?= e($url) ?>" alt="<?= e($name) ?>" loading="lazy">
|
||||
<?php else: ?>
|
||||
<?php /* 视频卡放静音迷你 <video preload="metadata"> 当缩略图:
|
||||
浏览器只拉头部就显示第一帧;加载不出来时透明露出图标 */ ?>
|
||||
<div class="attachment-icon"><?= $icon ?></div>
|
||||
<?php if ($kind === 'video'): ?>
|
||||
<video class="video-thumb video-thumb-mini" src="<?= e($url) ?>"
|
||||
muted preload="metadata" playsinline tabindex="-1"></video>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</a>
|
||||
|
||||
|
||||
@@ -182,11 +182,18 @@ $attIcon = static function (string $mime): string {
|
||||
<img src="<?= e(media_att($attId)) ?>" alt="<?= e($attName) ?>" loading="lazy">
|
||||
</a>
|
||||
<?php else: ?>
|
||||
<?php /* js-media:非图片走四态灯箱(视频/PDF 可预览,其它给下载) */ ?>
|
||||
<?php /* js-media:非图片走四态灯箱(视频/PDF 可预览,其它给下载)。
|
||||
视频卡放一个静音迷你 <video preload="metadata">:浏览器只拉视频头部
|
||||
(media/show 支持 Range)就显示第一帧画面,当缩略图用;
|
||||
加载不出来时 video 透明,露出下面的类型图标(老视频无需任何处理) */ ?>
|
||||
<a class="photo-card photo-card-icon js-media" href="<?= e(media_att($attId)) ?>"
|
||||
data-kind="<?= $kind ?>" data-cap="<?= e($attName) ?>"
|
||||
data-dl="<?= e(media_att($attId, true)) ?>" title="<?= e($attName) ?>">
|
||||
<span class="attachment-icon"><?= $attIcon($attMime) ?></span>
|
||||
<?php if ($kind === 'video'): ?>
|
||||
<video class="video-thumb-mini" src="<?= e(media_att($attId)) ?>"
|
||||
muted preload="metadata" playsinline tabindex="-1"></video>
|
||||
<?php endif; ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
|
||||
Reference in New Issue
Block a user