Fix not loading preview when changing hours

This commit is contained in:
Nicolas Mowen 2024-03-05 08:16:43 -07:00
parent 3ad6a745ac
commit 7bb79e1a8c

View File

@ -85,6 +85,16 @@ export default function DynamicVideoPlayer({
); );
}, [camera, config, previewOnly]); }, [camera, config, previewOnly]);
useEffect(() => {
if (!controller) {
return;
}
if (onControllerReady) {
onControllerReady(controller);
}
}, [controller, onControllerReady]);
const [hasRecordingAtTime, setHasRecordingAtTime] = useState(true); const [hasRecordingAtTime, setHasRecordingAtTime] = useState(true);
// keyboard control // keyboard control
@ -215,6 +225,10 @@ export default function DynamicVideoPlayer({
); );
setCurrentPreview(preview); setCurrentPreview(preview);
if (preview && previewRef.current) {
previewRef.current.load();
}
controller.newPlayback({ controller.newPlayback({
recordings: recordings ?? [], recordings: recordings ?? [],
playbackUri, playbackUri,
@ -283,27 +297,20 @@ export default function DynamicVideoPlayer({
)} )}
<video <video
ref={previewRef} ref={previewRef}
className={`size-full rounded-2xl ${currentPreview != undefined && isScrubbing ? "visible" : "hidden"} ${tallVideo ? "aspect-tall" : ""} bg-black`} className={`size-full rounded-2xl ${currentPreview != undefined && (previewOnly || isScrubbing) ? "visible" : "hidden"} ${tallVideo ? "aspect-tall" : ""} bg-black`}
preload="auto" preload="auto"
autoPlay autoPlay
playsInline playsInline
muted muted
onSeeked={onPreviewSeeked} onSeeked={onPreviewSeeked}
onLoadedData={() => controller.previewReady()} onLoadedData={() => controller.previewReady()}
onLoadStart={
previewOnly && onControllerReady
? () => {
onControllerReady(controller);
}
: undefined
}
> >
{currentPreview != undefined && ( {currentPreview != undefined && (
<source src={currentPreview.src} type={currentPreview.type} /> <source src={currentPreview.src} type={currentPreview.type} />
)} )}
</video> </video>
{onClick && !hasRecordingAtTime && ( {onClick && !hasRecordingAtTime && (
<div className="absolute inset-0 z-10 bg-black bg-opacity-60" /> <div className="absolute inset-0 z-10 bg-black bg-opacity-60 rounded-2xl" />
)} )}
</div> </div>
); );