From d42de8cb12d874ac513ef430b6a5bfc00a563677 Mon Sep 17 00:00:00 2001 From: Adrian Castro <22133246+castdrian@users.noreply.github.com> Date: Tue, 20 Feb 2024 17:07:35 +0100 Subject: [PATCH] feat: timeout if media doesn't play after one minute --- apps/expo/src/components/player/VideoPlayer.tsx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/apps/expo/src/components/player/VideoPlayer.tsx b/apps/expo/src/components/player/VideoPlayer.tsx index 189064f..8460b73 100644 --- a/apps/expo/src/components/player/VideoPlayer.tsx +++ b/apps/expo/src/components/player/VideoPlayer.tsx @@ -44,6 +44,7 @@ export const VideoPlayer = () => { const [isLoading, setIsLoading] = useState(true); const [resizeMode, setResizeMode] = useState(ResizeMode.CONTAIN); const [shouldPlay, setShouldPlay] = useState(true); + const [hasStartedPlaying, setHasStartedPlaying] = useState(false); const router = useRouter(); const scale = useSharedValue(1); @@ -159,7 +160,17 @@ export const VideoPlayer = () => { setIsLoading(true); void initializePlayer(); - }, [dismissFullscreenPlayer, router, stream]); + + const timeout = setTimeout(() => { + if (!hasStartedPlaying) { + router.back(); + } + }, 60000); + + return () => { + clearTimeout(timeout); + }; + }, [dismissFullscreenPlayer, hasStartedPlaying, router, stream]); const onVideoLoadStart = () => { setIsLoading(true); @@ -167,6 +178,7 @@ export const VideoPlayer = () => { const onReadyForDisplay = () => { setIsLoading(false); + setHasStartedPlaying(true); }; console.log(videoSrc, isLoading);