forked from Github/frigate
Show motion playback on page initially (#11196)
* motion video controls handle current time better * Make sure state is updated
This commit is contained in:
@@ -805,6 +805,11 @@ function MotionReview({
|
||||
return;
|
||||
}
|
||||
|
||||
if (nextTimestamp >= timeRange.before - 4) {
|
||||
setPlaying(false);
|
||||
return;
|
||||
}
|
||||
|
||||
const handleTimeout = () => {
|
||||
setCurrentTime(nextTimestamp);
|
||||
timeoutIdRef.current = setTimeout(handleTimeout, 500 / playbackRate);
|
||||
@@ -818,7 +823,7 @@ function MotionReview({
|
||||
}
|
||||
};
|
||||
}
|
||||
}, [playing, playbackRate, nextTimestamp]);
|
||||
}, [playing, playbackRate, nextTimestamp, setPlaying, timeRange]);
|
||||
|
||||
const { alignStartDateToTimeline } = useTimelineUtils({
|
||||
segmentDuration,
|
||||
@@ -962,37 +967,35 @@ function MotionReview({
|
||||
)}
|
||||
</div>
|
||||
|
||||
{!scrubbing && (
|
||||
<VideoControls
|
||||
className="absolute bottom-16 left-1/2 -translate-x-1/2 bg-secondary"
|
||||
features={{
|
||||
volume: false,
|
||||
seek: true,
|
||||
playbackRate: true,
|
||||
}}
|
||||
isPlaying={playing}
|
||||
playbackRates={[4, 8, 12, 16]}
|
||||
playbackRate={playbackRate}
|
||||
controlsOpen={controlsOpen}
|
||||
setControlsOpen={setControlsOpen}
|
||||
onPlayPause={setPlaying}
|
||||
onSeek={(diff) => {
|
||||
const wasPlaying = playing;
|
||||
<VideoControls
|
||||
className="absolute bottom-16 left-1/2 -translate-x-1/2 bg-secondary"
|
||||
features={{
|
||||
volume: false,
|
||||
seek: true,
|
||||
playbackRate: true,
|
||||
}}
|
||||
isPlaying={playing}
|
||||
show={!scrubbing}
|
||||
playbackRates={[4, 8, 12, 16]}
|
||||
playbackRate={playbackRate}
|
||||
controlsOpen={controlsOpen}
|
||||
setControlsOpen={setControlsOpen}
|
||||
onPlayPause={setPlaying}
|
||||
onSeek={(diff) => {
|
||||
const wasPlaying = playing;
|
||||
|
||||
if (wasPlaying) {
|
||||
setPlaying(false);
|
||||
}
|
||||
if (wasPlaying) {
|
||||
setPlaying(false);
|
||||
}
|
||||
|
||||
setCurrentTime(currentTime + diff);
|
||||
setCurrentTime(currentTime + diff);
|
||||
|
||||
if (wasPlaying) {
|
||||
setTimeout(() => setPlaying(true), 100);
|
||||
}
|
||||
}}
|
||||
onSetPlaybackRate={setPlaybackRate}
|
||||
show={currentTime < timeRange.before - 4}
|
||||
/>
|
||||
)}
|
||||
if (wasPlaying) {
|
||||
setTimeout(() => setPlaying(true), 100);
|
||||
}
|
||||
}}
|
||||
onSetPlaybackRate={setPlaybackRate}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user