Don't use loading

This commit is contained in:
Nicolas Mowen 2024-03-14 17:12:02 -06:00
parent 92ef756db2
commit 5b648e170a
2 changed files with 12 additions and 8 deletions

View File

@ -42,6 +42,7 @@ type HlsVideoPlayerProps = {
onClipEnded?: () => void; onClipEnded?: () => void;
onPlayerLoaded?: () => void; onPlayerLoaded?: () => void;
onTimeUpdate?: (time: number) => void; onTimeUpdate?: (time: number) => void;
onPlaying?: () => void;
}; };
export default function HlsVideoPlayer({ export default function HlsVideoPlayer({
className, className,
@ -51,6 +52,7 @@ export default function HlsVideoPlayer({
onClipEnded, onClipEnded,
onPlayerLoaded, onPlayerLoaded,
onTimeUpdate, onTimeUpdate,
onPlaying,
}: HlsVideoPlayerProps) { }: HlsVideoPlayerProps) {
// playback // playback
@ -183,6 +185,7 @@ export default function HlsVideoPlayer({
setMobileCtrlTimeout(setTimeout(() => setControls(false), 4000)); setMobileCtrlTimeout(setTimeout(() => setControls(false), 4000));
} }
}} }}
onPlaying={onPlaying}
onPause={() => { onPause={() => {
setIsPlaying(false); setIsPlaying(false);

View File

@ -8,7 +8,6 @@ import { Preview } from "@/types/preview";
import PreviewPlayer, { PreviewController } from "../PreviewPlayer"; import PreviewPlayer, { PreviewController } from "../PreviewPlayer";
import { DynamicVideoController } from "./DynamicVideoController"; import { DynamicVideoController } from "./DynamicVideoController";
import HlsVideoPlayer from "../HlsVideoPlayer"; import HlsVideoPlayer from "../HlsVideoPlayer";
import { Skeleton } from "@/components/ui/skeleton";
/** /**
* Dynamically switches between video playback and scrubbing preview player. * Dynamically switches between video playback and scrubbing preview player.
@ -98,6 +97,12 @@ export default function DynamicVideoPlayer({
// start at correct time // start at correct time
useEffect(() => {
if (isScrubbing) {
setIsLoading(true);
}
}, [isScrubbing]);
const onPlayerLoaded = useCallback(() => { const onPlayerLoaded = useCallback(() => {
if (!controller || !startTimestamp) { if (!controller || !startTimestamp) {
return; return;
@ -112,13 +117,9 @@ export default function DynamicVideoPlayer({
return; return;
} }
if (isLoading) {
setIsLoading(false);
}
onTimestampUpdate(controller.getProgress(time)); onTimestampUpdate(controller.getProgress(time));
}, },
[controller, isLoading, onTimestampUpdate], [controller, onTimestampUpdate],
); );
// state of playback player // state of playback player
@ -168,6 +169,7 @@ export default function DynamicVideoPlayer({
onTimeUpdate={onTimeUpdate} onTimeUpdate={onTimeUpdate}
onPlayerLoaded={onPlayerLoaded} onPlayerLoaded={onPlayerLoaded}
onClipEnded={onClipEnded} onClipEnded={onClipEnded}
onPlaying={() => setIsLoading(false)}
> >
{config && focusedItem && ( {config && focusedItem && (
<TimelineEventOverlay <TimelineEventOverlay
@ -177,9 +179,8 @@ export default function DynamicVideoPlayer({
)} )}
</HlsVideoPlayer> </HlsVideoPlayer>
</div> </div>
{isLoading && !isScrubbing && <Skeleton className="size-full" />}
<PreviewPlayer <PreviewPlayer
className={`${isScrubbing ? "visible" : "hidden"} ${className ?? ""}`} className={`${isScrubbing || isLoading ? "visible" : "hidden"} ${className ?? ""}`}
camera={camera} camera={camera}
timeRange={timeRange} timeRange={timeRange}
cameraPreviews={cameraPreviews} cameraPreviews={cameraPreviews}