mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-11 05:35:25 +03:00
Fix transition
This commit is contained in:
parent
c3256c79de
commit
d7155a90da
@ -162,12 +162,16 @@ function PreviewVideoPlayer({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setCurrentHourFrame(undefined);
|
||||||
|
|
||||||
if (isAndroid && isChrome) {
|
if (isAndroid && isChrome) {
|
||||||
// android/chrome glitches when setting currentTime at the same time as onSeeked
|
// android/chrome glitches when setting currentTime at the same time as onSeeked
|
||||||
setTimeout(() => controller.finishedSeeking(), 25);
|
setTimeout(() => controller.finishedSeeking(), 25);
|
||||||
} else {
|
} else {
|
||||||
controller.finishedSeeking();
|
controller.finishedSeeking();
|
||||||
}
|
}
|
||||||
|
// we only want to update on controller change
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [controller]);
|
}, [controller]);
|
||||||
|
|
||||||
// canvas to cover preview transition
|
// canvas to cover preview transition
|
||||||
@ -177,9 +181,8 @@ function PreviewVideoPlayer({
|
|||||||
|
|
||||||
const changeSource = useCallback(
|
const changeSource = useCallback(
|
||||||
(newPreview: Preview | undefined, video: HTMLVideoElement | null) => {
|
(newPreview: Preview | undefined, video: HTMLVideoElement | null) => {
|
||||||
setCurrentPreview(newPreview);
|
|
||||||
|
|
||||||
if (!newPreview || !video) {
|
if (!newPreview || !video) {
|
||||||
|
setCurrentPreview(newPreview);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -197,6 +200,8 @@ function PreviewVideoPlayer({
|
|||||||
setCurrentHourFrame(canvasRef.current?.toDataURL("image/webp"));
|
setCurrentHourFrame(canvasRef.current?.toDataURL("image/webp"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setCurrentPreview(newPreview);
|
||||||
|
|
||||||
// we only want this to change when current preview changes
|
// we only want this to change when current preview changes
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
},
|
},
|
||||||
@ -240,7 +245,7 @@ function PreviewVideoPlayer({
|
|||||||
/>
|
/>
|
||||||
<video
|
<video
|
||||||
ref={previewRef}
|
ref={previewRef}
|
||||||
className="absolute size-full"
|
className={`absolute size-full ${currentHourFrame ? "invisible" : "visible"}`}
|
||||||
preload="auto"
|
preload="auto"
|
||||||
autoPlay
|
autoPlay
|
||||||
playsInline
|
playsInline
|
||||||
@ -248,8 +253,6 @@ function PreviewVideoPlayer({
|
|||||||
disableRemotePlayback
|
disableRemotePlayback
|
||||||
onSeeked={onPreviewSeeked}
|
onSeeked={onPreviewSeeked}
|
||||||
onLoadedData={() => {
|
onLoadedData={() => {
|
||||||
setCurrentHourFrame(undefined);
|
|
||||||
|
|
||||||
if (controller) {
|
if (controller) {
|
||||||
controller.previewReady();
|
controller.previewReady();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user