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

Merge pull request #1198 from ferferga/mobile-backdrops

Switch player backdrops to poster attribute of the video element
This commit is contained in:
dkanada 2020-05-14 14:41:20 +09:00 committed by GitHub
commit 62f30f0066
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 29 deletions

View file

@ -842,7 +842,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
function onNavigatedToOsd() { function onNavigatedToOsd() {
var dlg = videoDialog; var dlg = videoDialog;
if (dlg) { if (dlg) {
dlg.classList.remove('videoPlayerContainer-withBackdrop');
dlg.classList.remove('videoPlayerContainer-onTop'); dlg.classList.remove('videoPlayerContainer-onTop');
onStartedAndNavigatedToOsd(); onStartedAndNavigatedToOsd();
@ -879,7 +878,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
} else { } else {
appRouter.setTransparency('backdrop'); appRouter.setTransparency('backdrop');
videoDialog.classList.remove('videoPlayerContainer-withBackdrop');
videoDialog.classList.remove('videoPlayerContainer-onTop'); videoDialog.classList.remove('videoPlayerContainer-onTop');
onStartedAndNavigatedToOsd(); onStartedAndNavigatedToOsd();
@ -1296,12 +1294,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
function createMediaElement(options) { function createMediaElement(options) {
if (browser.tv || browser.iOS || browser.mobile) {
// too slow
// also on iOS, the backdrop image doesn't look right
// on android mobile, it works, but can be slow to have the video surface fully cover the backdrop
options.backdropUrl = null;
}
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
var dlg = document.querySelector('.videoPlayerContainer'); var dlg = document.querySelector('.videoPlayerContainer');
@ -1316,11 +1308,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
dlg.classList.add('videoPlayerContainer'); dlg.classList.add('videoPlayerContainer');
if (options.backdropUrl) {
dlg.classList.add('videoPlayerContainer-withBackdrop');
dlg.style.backgroundImage = "url('" + options.backdropUrl + "')";
}
if (options.fullscreen) { if (options.fullscreen) {
dlg.classList.add('videoPlayerContainer-onTop'); dlg.classList.add('videoPlayerContainer-onTop');
} }
@ -1354,6 +1341,9 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
videoElement.addEventListener('play', onPlay); videoElement.addEventListener('play', onPlay);
videoElement.addEventListener('click', onClick); videoElement.addEventListener('click', onClick);
videoElement.addEventListener('dblclick', onDblClick); videoElement.addEventListener('dblclick', onDblClick);
if (options.backdropUrl) {
videoElement.poster = options.backdropUrl;
}
document.body.insertBefore(dlg, document.body.firstChild); document.body.insertBefore(dlg, document.body.firstChild);
videoDialog = dlg; videoDialog = dlg;
@ -1378,11 +1368,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
} }
}); });
} else { } else {
if (options.backdropUrl) {
dlg.classList.add('videoPlayerContainer-withBackdrop');
dlg.style.backgroundImage = "url('" + options.backdropUrl + "')";
}
resolve(dlg.querySelector('video')); resolve(dlg.querySelector('video'));
} }
}); });

View file

@ -6,20 +6,9 @@
right: 0; right: 0;
display: flex; display: flex;
align-items: center; align-items: center;
}
.videoPlayerContainer:not(.videoPlayerContainer-withBackdrop) {
background: #000 !important; background: #000 !important;
} }
.videoPlayerContainer-withBackdrop {
background-repeat: no-repeat;
background-position: center center;
background-size: cover;
background-attachment: fixed;
background-color: #000;
}
.videoPlayerContainer-onTop { .videoPlayerContainer-onTop {
z-index: 1000; z-index: 1000;
} }