From d287f5d0821d0768d2bd51b561253f4eb6933cc9 Mon Sep 17 00:00:00 2001 From: Alex Kim Date: Tue, 10 Dec 2024 20:21:00 +1100 Subject: [PATCH 1/3] Added fix for invalid trickplay, for transcoded player --- components/video-player/controls/Controls.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/video-player/controls/Controls.tsx b/components/video-player/controls/Controls.tsx index 95f22dfb..d52ad360 100644 --- a/components/video-player/controls/Controls.tsx +++ b/components/video-player/controls/Controls.tsx @@ -59,6 +59,7 @@ import { getItemById } from "@/utils/jellyfin/user-library/getItemById"; import { useAtom } from "jotai"; import { apiAtom } from "@/providers/JellyfinProvider"; import AudioSlider from "./AudioSlider"; +import { secondsToTicks } from "@/utils/secondsToTicks"; interface Props { item: BaseItemDto; @@ -291,10 +292,9 @@ export const Controls: React.FC = ({ const [time, setTime] = useState({ hours: 0, minutes: 0, seconds: 0 }); const handleSliderChange = useCallback( debounce((value: number) => { - const progressInTicks = msToTicks(value); + const progressInTicks = isVlc ? msToTicks(value) : value; console.log("Progress in ticks", progressInTicks); calculateTrickplayUrl(progressInTicks); - const progressInSeconds = Math.floor(ticksToSeconds(progressInTicks)); const hours = Math.floor(progressInSeconds / 3600); const minutes = Math.floor((progressInSeconds % 3600) / 60); From d9f21e682441f82019f2294dde049db6fbc35a06 Mon Sep 17 00:00:00 2001 From: Alex Kim Date: Tue, 10 Dec 2024 20:21:53 +1100 Subject: [PATCH 2/3] Removed Unused imports for controls --- components/video-player/controls/Controls.tsx | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/components/video-player/controls/Controls.tsx b/components/video-player/controls/Controls.tsx index d52ad360..1db6434d 100644 --- a/components/video-player/controls/Controls.tsx +++ b/components/video-player/controls/Controls.tsx @@ -26,13 +26,7 @@ import { import { Image } from "expo-image"; import { useRouter } from "expo-router"; import { useCallback, useEffect, useRef, useState } from "react"; -import { - Dimensions, - Platform, - Pressable, - TouchableOpacity, - View, -} from "react-native"; +import { Dimensions, Pressable, TouchableOpacity, View } from "react-native"; import { Slider } from "react-native-awesome-slider"; import { runOnJS, @@ -40,10 +34,7 @@ import { useAnimatedReaction, useSharedValue, } from "react-native-reanimated"; -import { - SafeAreaView, - useSafeAreaInsets, -} from "react-native-safe-area-context"; +import { useSafeAreaInsets } from "react-native-safe-area-context"; import { VideoRef } from "react-native-video"; import { ControlProvider } from "./contexts/ControlContext"; import { VideoProvider } from "./contexts/VideoContext"; @@ -54,12 +45,10 @@ import BrightnessSlider from "./BrightnessSlider"; import SkipButton from "./SkipButton"; import { debounce } from "lodash"; import { EpisodeList } from "./EpisodeList"; -import { BlurView } from "expo-blur"; import { getItemById } from "@/utils/jellyfin/user-library/getItemById"; import { useAtom } from "jotai"; import { apiAtom } from "@/providers/JellyfinProvider"; import AudioSlider from "./AudioSlider"; -import { secondsToTicks } from "@/utils/secondsToTicks"; interface Props { item: BaseItemDto; From 93bd817eafb018d3efed5c0599e4fa8cf75937f7 Mon Sep 17 00:00:00 2001 From: Alex Kim Date: Tue, 10 Dec 2024 20:22:41 +1100 Subject: [PATCH 3/3] Removed old function argumement --- components/video-player/controls/Controls.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/video-player/controls/Controls.tsx b/components/video-player/controls/Controls.tsx index 1db6434d..b601642f 100644 --- a/components/video-player/controls/Controls.tsx +++ b/components/video-player/controls/Controls.tsx @@ -404,7 +404,7 @@ export const Controls: React.FC = ({ const switchOnEpisodeMode = () => { setEpisodeView(true); - if (isPlaying) togglePlay(progress.value); + if (isPlaying) togglePlay(); }; const gotoEpisode = async (itemId: string) => {