mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-04-30 20:36:29 +01:00
feat(tv): add language-based audio and subtitle track selection
This commit is contained in:
@@ -1,19 +1,27 @@
|
||||
import { type BaseItemDto } from "@jellyfin/sdk/lib/generated-client";
|
||||
import { useMemo } from "react";
|
||||
import type { Settings } from "@/utils/atoms/settings";
|
||||
import { getDefaultPlaySettings } from "@/utils/jellyfin/getDefaultPlaySettings";
|
||||
import {
|
||||
getDefaultPlaySettings,
|
||||
type PlaySettingsOptions,
|
||||
} from "@/utils/jellyfin/getDefaultPlaySettings";
|
||||
|
||||
/**
|
||||
* React hook wrapper for getDefaultPlaySettings.
|
||||
* Used in UI components for initial playback (no previous track state).
|
||||
*
|
||||
* @param item - The media item to play
|
||||
* @param settings - User settings (language preferences, bitrate, etc.)
|
||||
* @param options - Optional flags to control behavior (e.g., applyLanguagePreferences for TV)
|
||||
*/
|
||||
const useDefaultPlaySettings = (
|
||||
item: BaseItemDto | null | undefined,
|
||||
settings: Settings | null,
|
||||
options?: PlaySettingsOptions,
|
||||
) =>
|
||||
useMemo(() => {
|
||||
const { mediaSource, audioIndex, subtitleIndex, bitrate } =
|
||||
getDefaultPlaySettings(item, settings);
|
||||
getDefaultPlaySettings(item, settings, undefined, options);
|
||||
|
||||
return {
|
||||
defaultMediaSource: mediaSource,
|
||||
@@ -21,6 +29,6 @@ const useDefaultPlaySettings = (
|
||||
defaultSubtitleIndex: subtitleIndex,
|
||||
defaultBitrate: bitrate,
|
||||
};
|
||||
}, [item, settings]);
|
||||
}, [item, settings, options]);
|
||||
|
||||
export default useDefaultPlaySettings;
|
||||
|
||||
Reference in New Issue
Block a user