fix(video_player): playback speed can get out of sync with external control

This commit is contained in:
Elian Doran
2026-03-10 20:08:17 +02:00
parent fc6e9d89d9
commit 5a16bafbbf

View File

@@ -237,7 +237,18 @@ function VolumeControl({ videoRef }: { videoRef: RefObject<HTMLVideoElement> })
const PLAYBACK_SPEEDS = [0.5, 1, 1.25, 1.5, 2];
function PlaybackSpeed({ videoRef }: { videoRef: RefObject<HTMLVideoElement> }) {
const [speed, setSpeed] = useState(1);
const [speed, setSpeed] = useState(() => videoRef.current?.playbackRate ?? 1);
useEffect(() => {
const video = videoRef.current;
if (!video) return;
setSpeed(video.playbackRate);
const onRateChange = () => setSpeed(video.playbackRate);
video.addEventListener("ratechange", onRateChange);
return () => video.removeEventListener("ratechange", onRateChange);
}, []);
const selectSpeed = (rate: number) => {
const video = videoRef.current;