what about this?

This commit is contained in:
Violet Caulfield
2025-03-21 08:50:17 -05:00
parent e06ef7e9ed
commit 2a3fd75357

View File

@@ -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<JellifyTrack> {
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