优化脚本
This commit is contained in:
@@ -69,12 +69,12 @@ export function allowedStructures(format: PresentationFormat): VideoStructure[]
|
||||
return STRUCTURE_KEYS.filter((key) => !isForbidden(format, key));
|
||||
}
|
||||
|
||||
// ── 时长:总时长 5–60 秒、5 秒步进;单镜 4–15 秒由后端切,前端只管总时长 ──
|
||||
// ── 时长:总时长 15/30/45/60;主流程每镜固定 15 秒 ──
|
||||
export const SEGMENT_DURATION_MIN = 4;
|
||||
export const SEGMENT_DURATION_MAX = 15;
|
||||
export const TOTAL_DURATION_MIN = 5;
|
||||
export const TOTAL_DURATION_MIN = 15;
|
||||
export const TOTAL_DURATION_MAX = 60;
|
||||
export const TOTAL_DURATION_STEP = 5;
|
||||
export const TOTAL_DURATION_STEP = 15;
|
||||
export const DURATION_OPTIONS: number[] = Array.from(
|
||||
{ length: (TOTAL_DURATION_MAX - TOTAL_DURATION_MIN) / TOTAL_DURATION_STEP + 1 },
|
||||
(_, i) => TOTAL_DURATION_MIN + i * TOTAL_DURATION_STEP
|
||||
@@ -82,8 +82,8 @@ export const DURATION_OPTIONS: number[] = Array.from(
|
||||
|
||||
/** 表现形式推荐的默认总时长:口播短平快 / 短剧要装下三幕 / Vlog 要铺氛围。 */
|
||||
const FORMAT_DEFAULT_DURATION: Record<PresentationFormat, number> = { oral: 30, drama: 45, vlog: 30 };
|
||||
/** 各结构能压到的最短总时长 —— 低于它证据或氛围就不成立了。 */
|
||||
const STRUCTURE_MIN_DURATION: Record<VideoStructure, number> = { pain: 15, contrast: 10, review: 20, scene: 20 };
|
||||
/** 各结构能压到的最短总时长 —— 低于它证据或氛围就不成立了。须落在 15 秒步进上。 */
|
||||
const STRUCTURE_MIN_DURATION: Record<VideoStructure, number> = { pain: 15, contrast: 15, review: 30, scene: 30 };
|
||||
|
||||
export function recommendDuration(format: PresentationFormat, structure: VideoStructure): number {
|
||||
return Math.max(FORMAT_DEFAULT_DURATION[format], STRUCTURE_MIN_DURATION[structure]);
|
||||
|
||||
Reference in New Issue
Block a user