1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Avoid async rendering of MediaSources tracks to prevent content jump

This commit is contained in:
Delgan 2020-06-14 21:36:18 +02:00
parent a27eae98e5
commit 1691827cee

View file

@ -141,29 +141,29 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti
return; return;
} }
playbackManager.getPlaybackMediaSources(item).then(function (mediaSources) { var mediaSources = item.MediaSources;
instance._currentPlaybackMediaSources = mediaSources; instance._currentPlaybackMediaSources = mediaSources;
page.querySelector('.trackSelections').classList.remove('hide'); page.querySelector('.trackSelections').classList.remove('hide');
select.setLabel(globalize.translate('LabelVersion')); select.setLabel(globalize.translate('LabelVersion'));
var currentValue = select.value; var currentValue = select.value;
var selectedId = mediaSources[0].Id; var selectedId = mediaSources[0].Id;
select.innerHTML = mediaSources.map(function (v) { select.innerHTML = mediaSources.map(function (v) {
var selected = v.Id === selectedId ? ' selected' : ''; var selected = v.Id === selectedId ? ' selected' : '';
return '<option value="' + v.Id + '"' + selected + '>' + v.Name + '</option>'; return '<option value="' + v.Id + '"' + selected + '>' + v.Name + '</option>';
}).join(''); }).join('');
if (mediaSources.length > 1) { if (mediaSources.length > 1) {
page.querySelector('.selectSourceContainer').classList.remove('hide'); page.querySelector('.selectSourceContainer').classList.remove('hide');
} else { } else {
page.querySelector('.selectSourceContainer').classList.add('hide'); 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) { function renderVideoSelections(page, mediaSources) {