From 1691827cee4798f2ff177606fb592104307b46ea Mon Sep 17 00:00:00 2001 From: Delgan Date: Sun, 14 Jun 2020 21:36:18 +0200 Subject: [PATCH] Avoid async rendering of MediaSources tracks to prevent content jump --- src/controllers/itemDetails.js | 42 +++++++++++++++++----------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/controllers/itemDetails.js b/src/controllers/itemDetails.js index 01f618750f..67aa5f9407 100644 --- a/src/controllers/itemDetails.js +++ b/src/controllers/itemDetails.js @@ -141,29 +141,29 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti return; } - playbackManager.getPlaybackMediaSources(item).then(function (mediaSources) { - instance._currentPlaybackMediaSources = mediaSources; - page.querySelector('.trackSelections').classList.remove('hide'); - select.setLabel(globalize.translate('LabelVersion')); - var currentValue = select.value; - var selectedId = mediaSources[0].Id; - select.innerHTML = mediaSources.map(function (v) { - var selected = v.Id === selectedId ? ' selected' : ''; - return ''; - }).join(''); + var mediaSources = item.MediaSources; + instance._currentPlaybackMediaSources = mediaSources; + page.querySelector('.trackSelections').classList.remove('hide'); + select.setLabel(globalize.translate('LabelVersion')); + var currentValue = select.value; + var selectedId = mediaSources[0].Id; + select.innerHTML = mediaSources.map(function (v) { + var selected = v.Id === selectedId ? ' selected' : ''; + return ''; + }).join(''); - if (mediaSources.length > 1) { - page.querySelector('.selectSourceContainer').classList.remove('hide'); - } else { - page.querySelector('.selectSourceContainer').classList.add('hide'); - } + if (mediaSources.length > 1) { + page.querySelector('.selectSourceContainer').classList.remove('hide'); + } else { + page.querySelector('.selectSourceContainer').classList.add('hide'); + } + + if (select.value !== currentValue || forceReload) { + renderVideoSelections(page, mediaSources); + renderAudioSelections(page, mediaSources); + renderSubtitleSelections(page, mediaSources); + } - if (select.value !== currentValue || forceReload) { - renderVideoSelections(page, mediaSources); - renderAudioSelections(page, mediaSources); - renderSubtitleSelections(page, mediaSources); - } - }); } function renderVideoSelections(page, mediaSources) {