"use client"; import React, { useMemo } from "react"; import { Player } from "@remotion/player"; import { Sequence, AbsoluteFill } from "remotion"; import { Audio } from "@remotion/media"; import { FPS } from "@/lib/remotion/constants"; export interface CompiledSlide { component: React.ComponentType; title: string; code: string; durationInFrames: number; audioUrl?: string; } function CombinedComposition({ scenes }: { scenes: CompiledSlide[] }) { let offset = 0; return ( {scenes.map((scene, i) => { const from = offset; offset += scene.durationInFrames; return ( {scene.audioUrl && ); })} ); } export function buildCompositionComponent(slides: CompiledSlide[]): React.FC { const scenesSnapshot = [...slides]; const Comp: React.FC = () => ; return Comp; } interface CombinedPlayerProps { slides: CompiledSlide[]; } export function CombinedPlayer({ slides }: CombinedPlayerProps) { const CompositionWithScenes = useMemo(() => { const scenesSnapshot = [...slides]; const Comp: React.FC = () => ; return Comp; }, [slides]); const totalFrames = useMemo( () => slides.reduce((sum, s) => sum + s.durationInFrames, 0), [slides], ); return (
); }