diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index ba19510cde..f56620fda0 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -2300,7 +2300,7 @@ class PlaybackManager { } } - function autoSetNextTracks(prevSource, mediaSource) { + function autoSetNextTracks(prevSource, mediaSource, audio, subtitle) { try { if (!prevSource) return; @@ -2319,8 +2319,11 @@ class PlaybackManager { return; } - rankStreamType(prevSource.DefaultAudioStreamIndex, prevSource, mediaSource, 'Audio'); - rankStreamType(prevSource.DefaultSubtitleStreamIndex, prevSource, mediaSource, 'Subtitle'); + if (audio) + rankStreamType(prevSource.DefaultAudioStreamIndex, prevSource, mediaSource, 'Audio'); + + if (subtitle) + rankStreamType(prevSource.DefaultSubtitleStreamIndex, prevSource, mediaSource, 'Subtitle'); } catch (e) { console.error(`AutoSet - Caught unexpected error: ${e}`); } @@ -2385,8 +2388,18 @@ class PlaybackManager { playOptions.items = null; return getPlaybackMediaSource(player, apiClient, deviceProfile, maxBitrate, item, startPosition, mediaSourceId, audioStreamIndex, subtitleStreamIndex).then(function (mediaSource) { - if (userSettings.enableSetUsingLastTracks()) - autoSetNextTracks(prevSource, mediaSource); + const user = apiClient.getCurrentUser(); + if (user.Configuration.RememberAudioSelections) { + if (user.Configuration.RememberSubtitleSelections) + autoSetNextTracks(prevSource, mediaSource, true, true); + else + autoSetNextTracks(prevSource, mediaSource, true, false); + } else { + if (user.Configuration.RememberSubtitleSelections) + autoSetNextTracks(prevSource, mediaSource, false, true); + else + autoSetNextTracks(prevSource, mediaSource, false, false); + } const streamInfo = createStreamInfo(apiClient, item.MediaType, item, mediaSource, startPosition, player); diff --git a/src/components/playbackSettings/playbackSettings.js b/src/components/playbackSettings/playbackSettings.js index 0de42c6c18..976e8b2f77 100644 --- a/src/components/playbackSettings/playbackSettings.js +++ b/src/components/playbackSettings/playbackSettings.js @@ -180,7 +180,8 @@ import template from './playbackSettings.template.html'; context.querySelector('.chkPreferFmp4HlsContainer').checked = userSettings.preferFmp4HlsContainer(); context.querySelector('.chkEnableCinemaMode').checked = userSettings.enableCinemaMode(); context.querySelector('.chkEnableNextVideoOverlay').checked = userSettings.enableNextVideoInfoOverlay(); - context.querySelector('.chkSetUsingLastTracks').checked = userSettings.enableSetUsingLastTracks(); + context.querySelector('.chkRememberAudioSelections').checked = user.Configuration.RememberAudioSelections || false; + context.querySelector('.chkRememberSubtitleSelections').checked = user.Configuration.RememberSubtitleSelections || false; context.querySelector('.chkExternalVideoPlayer').checked = appSettings.enableSystemExternalPlayers(); setMaxBitrateIntoField(context.querySelector('.selectVideoInNetworkQuality'), true, 'Video'); @@ -222,7 +223,8 @@ import template from './playbackSettings.template.html'; userSettingsInstance.enableCinemaMode(context.querySelector('.chkEnableCinemaMode').checked); userSettingsInstance.enableNextVideoInfoOverlay(context.querySelector('.chkEnableNextVideoOverlay').checked); - userSettingsInstance.enableSetUsingLastTracks(context.querySelector('.chkSetUsingLastTracks').checked); + user.Configuration.RememberAudioSelections = context.querySelector('.chkRememberAudioSelections').checked; + user.Configuration.RememberSubtitleSelections = context.querySelector('.chkRememberSubtitleSelections').checked; userSettingsInstance.chromecastVersion(context.querySelector('.selectChromecastVersion').value); userSettingsInstance.skipForwardLength(context.querySelector('.selectSkipForwardLength').value); userSettingsInstance.skipBackLength(context.querySelector('.selectSkipBackLength').value); diff --git a/src/components/playbackSettings/playbackSettings.template.html b/src/components/playbackSettings/playbackSettings.template.html index 19782334e1..bfc184ea5b 100644 --- a/src/components/playbackSettings/playbackSettings.template.html +++ b/src/components/playbackSettings/playbackSettings.template.html @@ -84,10 +84,18 @@