feat: Media stream info in now playing modal (#233)
* feat: add base codec info to player * fix: redundant console.log * chore: translation * fix: only overflow direct play
This commit is contained in:
@@ -61,6 +61,7 @@ export async function retrieveAlbumTracks(ItemId: string) {
|
||||
const singleAlbumOptions = {
|
||||
ParentId: ItemId,
|
||||
SortBy: 'ParentIndexNumber,IndexNumber,SortName',
|
||||
Fields: 'MediaStreams',
|
||||
};
|
||||
const singleAlbumParams = new URLSearchParams(singleAlbumOptions).toString();
|
||||
|
||||
|
||||
@@ -15,6 +15,9 @@ function generateConfig(credentials: Credentials): RequestInit {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve a copy of the store without getting caught in import cycles.
|
||||
*/
|
||||
export function asyncFetchStore() {
|
||||
return require('@/store').default as Store;
|
||||
}
|
||||
@@ -74,7 +77,7 @@ export async function fetchApi<T>(
|
||||
const data = await response.json();
|
||||
throw data;
|
||||
} catch {
|
||||
throw response;
|
||||
throw new Error('FailedRequest');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,8 +22,9 @@ const baseTrackOptions: Record<string, string> = {
|
||||
TranscodingContainer: 'aac',
|
||||
AudioCodec: 'aac',
|
||||
Container: 'mp3,aac',
|
||||
audioBitRate: '320000',
|
||||
...trackOptionsOsOverrides[Platform.OS],
|
||||
};
|
||||
} as const;
|
||||
|
||||
/**
|
||||
* Generate the track streaming url from the trackId
|
||||
@@ -47,10 +48,12 @@ export function generateTrackUrl(trackId: string) {
|
||||
* Generate a track object from a Jellyfin ItemId so that
|
||||
* react-native-track-player can easily consume it.
|
||||
*/
|
||||
export function generateTrack(track: AlbumTrack): Track {
|
||||
export async function generateTrack(track: AlbumTrack): Promise<Track> {
|
||||
// Also construct the URL for the stream
|
||||
const url = generateTrackUrl(track.Id);
|
||||
|
||||
const response = await fetch(url, { method: 'HEAD' });
|
||||
|
||||
return {
|
||||
url,
|
||||
backendId: track.Id,
|
||||
@@ -63,6 +66,9 @@ export function generateTrack(track: AlbumTrack): Track {
|
||||
: getImage(track.Id),
|
||||
hasLyrics: track.HasLyrics,
|
||||
lyrics: track.Lyrics,
|
||||
contentType: response.headers.get('Content-Type') || undefined,
|
||||
isDirectPlay: response.headers.has('Content-Length'),
|
||||
bitRate: baseTrackOptions.audioBitRate,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user