From 2a3fd75357acc89e1dab0050fc2eee4d0074b879 Mon Sep 17 00:00:00 2001 From: Violet Caulfield Date: Fri, 21 Mar 2025 08:50:17 -0500 Subject: [PATCH] what about this? --- helpers/mappings.ts | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/helpers/mappings.ts b/helpers/mappings.ts index 6e8b1f0c..c932fa62 100644 --- a/helpers/mappings.ts +++ b/helpers/mappings.ts @@ -2,27 +2,31 @@ import { BaseItemDto, ImageType } from "@jellyfin/sdk/lib/generated-client/model import { JellifyTrack } from "../types/JellifyTrack"; import { RatingType, TrackType } from "react-native-track-player"; import { QueuingType } from "../enums/queuing-type"; -import { getImageApi, getMediaInfoApi } from "@jellyfin/sdk/lib/utils/api"; +import { getImageApi } from "@jellyfin/sdk/lib/utils/api"; import Client from "../api/client"; import { isUndefined } from "lodash"; +import { runOnRuntime } from "react-native-reanimated"; +import { backgroundRuntime } from "../App"; -export async function mapDtoToTrack(item: BaseItemDto, queuingType?: QueuingType) : Promise { - - const mediaInfoApi = getMediaInfoApi(Client.api!) +// TODO: Make this configurable +const transcodingContainer = "ts"; - const url = await mediaInfoApi.getPlaybackInfo({ - itemId: item.Id!, - }) - .then(({ data }) => { - - console.debug(data) - return data.MediaSources![0].TranscodingUrl! - }) +export function mapDtoToTrack(item: BaseItemDto, queuingType?: QueuingType) : JellifyTrack { + const urlParams = { + "Container": item.Container!, + "TranscodingContainer": transcodingContainer, + "TranscodingProtocol": TrackType.HLS, + "EnableRemoteMedia": "true", + "EnableRedirection": "true", + "api_key": Client.api!.accessToken, + "StartTimeTicks": "0", + "PlaySessionId": Client.sessionId, + } const isFavorite = !isUndefined(item.UserData) && (item.UserData.IsFavorite ?? false); return { - url, + url: `${Client.api!.basePath}/Audio/${item.Id!}/universal?${new URLSearchParams(urlParams)}`, type: TrackType.HLS, headers: { "X-Emby-Token": Client.api!.accessToken