diff --git a/bun.lockb b/bun.lockb index f2cf4f60..3ddcd69e 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/components/PlayButton.tsx b/components/PlayButton.tsx index 0b88d2e4..70d27f41 100644 --- a/components/PlayButton.tsx +++ b/components/PlayButton.tsx @@ -32,6 +32,7 @@ import Animated, { } from "react-native-reanimated"; import { Button } from "./Button"; import { SelectedOptions } from "./ItemContent"; +import ios from "@/utils/profiles/ios"; interface Props extends React.ComponentProps { item: BaseItemDto; @@ -149,7 +150,7 @@ export const PlayButton: React.FC = ({ const data = await getStreamUrl({ api, item, - deviceProfile: chromecastProfile, + deviceProfile: ios, startTimeTicks: item?.UserData?.PlaybackPositionTicks!, userId: user?.Id, audioStreamIndex: selectedOptions.audioIndex, diff --git a/package.json b/package.json index dc0a1845..eee3a818 100644 --- a/package.json +++ b/package.json @@ -18,19 +18,19 @@ "dependencies": { "@config-plugins/ffmpeg-kit-react-native": "^8.0.0", "@expo/react-native-action-sheet": "^4.1.0", - "@expo/vector-icons": "^14.0.3", - "@futurejj/react-native-visibility-sensor": "^1.3.4", - "@gorhom/bottom-sheet": "^4", + "@expo/vector-icons": "^14.0.4", + "@futurejj/react-native-visibility-sensor": "^1.3.5", + "@gorhom/bottom-sheet": "^4.6.4", "@jellyfin/sdk": "^0.11.0", "@kesha-antonov/react-native-background-downloader": "^3.2.1", "@react-native-async-storage/async-storage": "1.23.1", "@react-native-community/netinfo": "11.3.1", - "@react-native-menu/menu": "^1.1.3", + "@react-native-menu/menu": "^1.1.6", "@react-navigation/material-top-tabs": "^6.6.14", - "@react-navigation/native": "^6.0.2", + "@react-navigation/native": "^6.1.18", "@shopify/flash-list": "1.6.4", - "@tanstack/react-query": "^5.56.2", - "@types/lodash": "^4.17.9", + "@tanstack/react-query": "^5.59.20", + "@types/lodash": "^4.17.13", "@types/react-native-vector-icons": "^6.4.18", "@types/uuid": "^10.0.0", "add": "^2.0.6", @@ -62,23 +62,23 @@ "expo-web-browser": "~13.0.3", "ffmpeg-kit-react-native": "^6.0.2", "install": "^0.13.0", - "jotai": "^2.10.0", + "jotai": "^2.10.1", "lodash": "^4.17.21", "nativewind": "^2.0.11", "react": "18.2.0", "react-dom": "18.2.0", "react-native": "0.74.5", - "react-native-awesome-slider": "^2.5.3", + "react-native-awesome-slider": "^2.5.6", "react-native-bottom-tabs": "^0.4.0", - "react-native-circular-progress": "^1.4.0", - "react-native-compressor": "^1.8.25", - "react-native-edge-to-edge": "^1.1.0", + "react-native-circular-progress": "^1.4.1", + "react-native-compressor": "^1.9.0", + "react-native-edge-to-edge": "^1.1.1", "react-native-gesture-handler": "~2.16.1", "react-native-get-random-values": "^1.11.0", "react-native-google-cast": "^4.8.3", "react-native-image-colors": "^2.4.0", - "react-native-ios-context-menu": "^2.5.1", - "react-native-ios-utilities": "^4.4.5", + "react-native-ios-context-menu": "^2.5.2", + "react-native-ios-utilities": "^4.5.1", "react-native-mmkv": "^2.12.2", "react-native-pager-view": "6.3.0", "react-native-reanimated": "~3.10.1", @@ -90,19 +90,19 @@ "react-native-uitextview": "^1.4.0", "react-native-url-polyfill": "^2.0.0", "react-native-uuid": "^2.0.2", - "react-native-video": "^6.6.4", - "react-native-web": "~0.19.10", + "react-native-video": "^6.7.0", + "react-native-web": "~0.19.13", "sonner-native": "^0.14.2", "tailwindcss": "3.3.2", - "use-debounce": "^10.0.3", + "use-debounce": "^10.0.4", "uuid": "^10.0.0", "zeego": "^1.10.0", "zod": "^3.23.8" }, "devDependencies": { - "@babel/core": "^7.20.0", - "@types/jest": "^29.5.12", - "@types/react": "~18.2.45", + "@babel/core": "^7.26.0", + "@types/jest": "^29.5.14", + "@types/react": "~18.2.79", "@types/react-test-renderer": "^18.0.7", "jest": "^29.2.1", "jest-expo": "~51.0.4", diff --git a/utils/jellyfin/media/getStreamUrl.ts b/utils/jellyfin/media/getStreamUrl.ts index c2eb509c..ad6ba05e 100644 --- a/utils/jellyfin/media/getStreamUrl.ts +++ b/utils/jellyfin/media/getStreamUrl.ts @@ -1,4 +1,4 @@ -import iosFmp4 from "@/utils/profiles/iosFmp4"; +import native from "@/utils/profiles/native"; import { Api } from "@jellyfin/sdk"; import { BaseItemDto, @@ -6,8 +6,6 @@ import { PlaybackInfoResponse, } from "@jellyfin/sdk/lib/generated-client/models"; import { getMediaInfoApi } from "@jellyfin/sdk/lib/utils/api"; -import { getAuthHeaders } from "../jellyfin"; -import native from "@/utils/profiles/native"; export const getStreamUrl = async ({ api, diff --git a/utils/profiles/chromecast.ts b/utils/profiles/chromecast.ts index 73b0b9fc..b686be31 100644 --- a/utils/profiles/chromecast.ts +++ b/utils/profiles/chromecast.ts @@ -1,15 +1,7 @@ import { - DeviceProfile, - DlnaProfileType, + DeviceProfile } from "@jellyfin/sdk/lib/generated-client/models"; -const MediaTypes = { - Audio: "Audio", - Video: "Video", - Photo: "Photo", - Book: "Book", -}; - export const chromecastProfile: DeviceProfile = { Name: "Chromecast Video Profile", Id: "chromecast-001",