feat(player): enable language-based track selection on mobile

This commit is contained in:
Fredrik Burmester
2026-01-26 19:36:51 +01:00
parent 7fe24369c0
commit 55c74ab383
3 changed files with 23 additions and 6 deletions

View File

@@ -73,12 +73,16 @@ export const DownloadItems: React.FC<DownloadProps> = ({
SelectedOptions | undefined
>(undefined);
const playSettingsOptions = useMemo(
() => ({ applyLanguagePreferences: true }),
[],
);
const {
defaultAudioIndex,
defaultBitrate,
defaultMediaSource,
defaultSubtitleIndex,
} = useDefaultPlaySettings(items[0], settings);
} = useDefaultPlaySettings(items[0], settings, playSettingsOptions);
const userCanDownload = useMemo(
() => user?.Policy?.EnableContentDownloading,

View File

@@ -75,12 +75,20 @@ const ItemContentMobile: React.FC<ItemContentProps> = ({
>(undefined);
// Use itemWithSources for play settings since it has MediaSources data
const playSettingsOptions = useMemo(
() => ({ applyLanguagePreferences: true }),
[],
);
const {
defaultAudioIndex,
defaultBitrate,
defaultMediaSource,
defaultSubtitleIndex,
} = useDefaultPlaySettings(itemWithSources ?? item, settings);
} = useDefaultPlaySettings(
itemWithSources ?? item,
settings,
playSettingsOptions,
);
const logoUrl = useMemo(
() => (item ? getLogoImageUrlById({ api, item }) : null),

View File

@@ -339,10 +339,15 @@ export const Controls: FC<Props> = ({
mediaSource: newMediaSource,
audioIndex: defaultAudioIndex,
subtitleIndex: defaultSubtitleIndex,
} = getDefaultPlaySettings(item, settings, {
indexes: previousIndexes,
source: mediaSource ?? undefined,
});
} = getDefaultPlaySettings(
item,
settings,
{
indexes: previousIndexes,
source: mediaSource ?? undefined,
},
{ applyLanguagePreferences: true },
);
const queryParams = new URLSearchParams({
...(offline && { offline: "true" }),