mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-10 13:15:25 +03:00
Cleanup autoplay
This commit is contained in:
parent
0a300f1b4d
commit
83339a9909
@ -5,7 +5,7 @@ type TWrapperProps = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const Wrapper = ({ children }: TWrapperProps) => {
|
const Wrapper = ({ children }: TWrapperProps) => {
|
||||||
return <main className="w-screen h-screen overflow-hidden">{children}</main>;
|
return <main className="w-screen h-dvh overflow-hidden">{children}</main>;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Wrapper;
|
export default Wrapper;
|
||||||
|
|||||||
@ -99,26 +99,6 @@ export default function DynamicVideoPlayer({
|
|||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [controller]);
|
}, [controller]);
|
||||||
|
|
||||||
const [initPreviewOnly, setInitPreviewOnly] = useState(previewOnly);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (!controller || !playerRef) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (previewOnly == initPreviewOnly) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!previewOnly) {
|
|
||||||
controller.seekToTimestamp(playerRef.currentTime() || 0, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
setInitPreviewOnly(previewOnly);
|
|
||||||
// we only want to fire once when players are ready
|
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
||||||
}, [controller, previewOnly]);
|
|
||||||
|
|
||||||
// keyboard control
|
// keyboard control
|
||||||
|
|
||||||
const onKeyboardShortcut = useCallback(
|
const onKeyboardShortcut = useCallback(
|
||||||
@ -191,16 +171,23 @@ export default function DynamicVideoPlayer({
|
|||||||
// start at correct time
|
// start at correct time
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (previewOnly || !startTime) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const player = playerRef;
|
const player = playerRef;
|
||||||
|
|
||||||
if (!player) {
|
if (!player) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (previewOnly) {
|
||||||
|
player.autoplay(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
player.autoplay(true);
|
||||||
|
|
||||||
|
if (!startTime) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (player.isReady_) {
|
if (player.isReady_) {
|
||||||
controller?.seekToTimestamp(startTime, true);
|
controller?.seekToTimestamp(startTime, true);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -373,7 +373,9 @@ export function MobileRecordingView({
|
|||||||
</Button>
|
</Button>
|
||||||
<DropdownMenu>
|
<DropdownMenu>
|
||||||
<DropdownMenuTrigger asChild>
|
<DropdownMenuTrigger asChild>
|
||||||
<Button>{playbackCamera}</Button>
|
<Button className="capitalize">
|
||||||
|
{playbackCamera.replaceAll("_", " ")}
|
||||||
|
</Button>
|
||||||
</DropdownMenuTrigger>
|
</DropdownMenuTrigger>
|
||||||
<DropdownMenuContent>
|
<DropdownMenuContent>
|
||||||
<DropdownMenuRadioGroup
|
<DropdownMenuRadioGroup
|
||||||
@ -384,7 +386,11 @@ export function MobileRecordingView({
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{allCameras.map((cam) => (
|
{allCameras.map((cam) => (
|
||||||
<DropdownMenuRadioItem key={cam} value={cam}>
|
<DropdownMenuRadioItem
|
||||||
|
key={cam}
|
||||||
|
className="capitalize"
|
||||||
|
value={cam}
|
||||||
|
>
|
||||||
{cam.replaceAll("_", " ")}
|
{cam.replaceAll("_", " ")}
|
||||||
</DropdownMenuRadioItem>
|
</DropdownMenuRadioItem>
|
||||||
))}
|
))}
|
||||||
@ -395,7 +401,7 @@ export function MobileRecordingView({
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<DynamicVideoPlayer
|
<DynamicVideoPlayer
|
||||||
camera={startCamera}
|
camera={playbackCamera}
|
||||||
timeRange={currentTimeRange}
|
timeRange={currentTimeRange}
|
||||||
cameraPreviews={relevantPreviews || []}
|
cameraPreviews={relevantPreviews || []}
|
||||||
startTime={playbackStart}
|
startTime={playbackStart}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user