Use duration from /info endpoint instead of player's duration

This commit is contained in:
Zoe Roux 2024-04-01 20:53:53 +02:00
parent 0c387fc19a
commit 1f16271354
No known key found for this signature in database
2 changed files with 6 additions and 5 deletions

View File

@ -36,7 +36,7 @@ import { useRouter } from "solito/router";
import { useSetAtom } from "jotai";
import { useYoshiki } from "yoshiki/native";
import { Back, Hover, LoadingIndicator } from "./components/hover";
import { fullscreenAtom, Video } from "./state";
import { durationAtom, fullscreenAtom, Video } from "./state";
import { episodeDisplayNumber } from "../details/episode";
import { useVideoKeyboard } from "./keyboard";
import { MediaSessionManager } from "./media-session";
@ -104,6 +104,11 @@ export const Player = ({
};
}, [setFullscreen]);
const setDuration = useSetAtom(durationAtom);
useEffect(() => {
setDuration(info?.durationSeconds);
}, [info, setDuration]);
if (error || infoError || playbackError)
return (
<>

View File

@ -119,7 +119,6 @@ export const Video = memo(function Video({
const setPrivateProgress = useSetAtom(privateProgressAtom);
const setPublicProgress = useSetAtom(publicProgressAtom);
const setBuffered = useSetAtom(bufferedAtom);
const setDuration = useSetAtom(durationAtom);
useEffect(() => {
ref.current?.seek(publicProgress);
}, [publicProgress]);
@ -217,9 +216,6 @@ export const Video = memo(function Video({
setPrivateProgress(progress.currentTime);
setBuffered(progress.playableDuration);
}}
onLoad={(info) => {
setDuration(info.duration);
}}
onPlaybackStateChanged={(state) => setPlay(state.isPlaying)}
fonts={fonts}
subtitles={subtitles}