|
|
@@ -2042,51 +2042,21 @@
|
|
|
return /\.(mp4|m4v|mov|webm|3gp|avi|mkv)$/i.test(path);
|
|
|
}
|
|
|
|
|
|
- function getMp4PlaybackUrl(url) {
|
|
|
- var u = normalizeMediaUrl(String(url || ''));
|
|
|
- if (!u) return '';
|
|
|
- var q = u.indexOf('?');
|
|
|
- var h = u.indexOf('#');
|
|
|
- var cut = u.length;
|
|
|
- if (q >= 0) cut = Math.min(cut, q);
|
|
|
- if (h >= 0) cut = Math.min(cut, h);
|
|
|
- var base = u.slice(0, cut);
|
|
|
- if (/\.mp4$/i.test(base)) return base;
|
|
|
- return u;
|
|
|
- }
|
|
|
-
|
|
|
- function mp4UrlToJpgUrl(u) {
|
|
|
- var q = u.indexOf('?');
|
|
|
- var h = u.indexOf('#');
|
|
|
- var cut = u.length;
|
|
|
- if (q >= 0) cut = Math.min(cut, q);
|
|
|
- if (h >= 0) cut = Math.min(cut, h);
|
|
|
- var pathPart = u.slice(0, cut);
|
|
|
- var rest = u.slice(cut);
|
|
|
- if (!/\.mp4$/i.test(pathPart)) return '';
|
|
|
- return pathPart.slice(0, -4) + '.jpg' + rest;
|
|
|
- }
|
|
|
-
|
|
|
- function mp4UrlToOssSnapshotUrl(mp4Base) {
|
|
|
- if (!mp4Base) return '';
|
|
|
+ function videoUrlToOssSnapshotCoverUrl(videoUrl) {
|
|
|
+ var url = normalizeMediaUrl(String(videoUrl || ''));
|
|
|
+ if (!url) return '';
|
|
|
return (
|
|
|
- mp4Base +
|
|
|
- (mp4Base.indexOf('?') >= 0 ? '&' : '?') +
|
|
|
- 'x-oss-process=video/snapshot,t_0,f_jpg,m_fast'
|
|
|
+ url +
|
|
|
+ (url.indexOf('?') >= 0 ? '&' : '?') +
|
|
|
+ 'x-oss-process=video/snapshot,t_0,m_fast,ar_auto'
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- /** 中间轮播:仅把打卡视频换成封面静图(不用店铺 entranceImage / coverUrl) */
|
|
|
+ /** 中间轮播:视频 URL 直接拼 OSS 截图作封面 */
|
|
|
function resolveCheckInVideoPosterUrl(videoUrl) {
|
|
|
var url = normalizeMediaUrl(videoUrl);
|
|
|
if (!url || !isCheckInVideoUrl(url)) return '';
|
|
|
- var playUrl = getMp4PlaybackUrl(url);
|
|
|
- if (playUrl) {
|
|
|
- var jpg = mp4UrlToJpgUrl(playUrl);
|
|
|
- if (jpg) return jpg;
|
|
|
- return mp4UrlToOssSnapshotUrl(playUrl);
|
|
|
- }
|
|
|
- return CHECKIN_HERO_DEFAULT_MAP_SRC;
|
|
|
+ return videoUrlToOssSnapshotCoverUrl(url);
|
|
|
}
|
|
|
|
|
|
/** 原始打卡配图列表(checkInImages),不含店铺头图 */
|