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:
commit
62f30f0066
2 changed files with 3 additions and 29 deletions
|
@ -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'));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue