mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
use random backdrop image in video player
This commit is contained in:
parent
aec90cbc96
commit
23a22d6b24
2 changed files with 9 additions and 24 deletions
|
@ -14,6 +14,7 @@ import alert from '../alert';
|
||||||
import { PluginType } from '../../types/plugin.ts';
|
import { PluginType } from '../../types/plugin.ts';
|
||||||
import { includesAny } from '../../utils/container.ts';
|
import { includesAny } from '../../utils/container.ts';
|
||||||
import { getItems } from '../../utils/jellyfin-apiclient/getItems.ts';
|
import { getItems } from '../../utils/jellyfin-apiclient/getItems.ts';
|
||||||
|
import { getRandomItemBackdropImageUrl } from '../../utils/url';
|
||||||
|
|
||||||
const UNLIMITED_ITEMS = -1;
|
const UNLIMITED_ITEMS = -1;
|
||||||
|
|
||||||
|
@ -154,28 +155,6 @@ function mergePlaybackQueries(obj1, obj2) {
|
||||||
return query;
|
return query;
|
||||||
}
|
}
|
||||||
|
|
||||||
function backdropImageUrl(apiClient, item, options) {
|
|
||||||
options = options || {};
|
|
||||||
options.type = options.type || 'Backdrop';
|
|
||||||
|
|
||||||
// If not resizing, get the original image
|
|
||||||
if (!options.maxWidth && !options.width && !options.maxHeight && !options.height && !options.fillWidth && !options.fillHeight) {
|
|
||||||
options.quality = 100;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.BackdropImageTags?.length) {
|
|
||||||
options.tag = item.BackdropImageTags[0];
|
|
||||||
return apiClient.getScaledImageUrl(item.Id, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.ParentBackdropImageTags?.length) {
|
|
||||||
options.tag = item.ParentBackdropImageTags[0];
|
|
||||||
return apiClient.getScaledImageUrl(item.ParentBackdropItemId, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getMimeType(type, container) {
|
function getMimeType(type, container) {
|
||||||
container = (container || '').toLowerCase();
|
container = (container || '').toLowerCase();
|
||||||
|
|
||||||
|
@ -2693,7 +2672,7 @@ class PlaybackManager {
|
||||||
title: item.Name
|
title: item.Name
|
||||||
};
|
};
|
||||||
|
|
||||||
const backdropUrl = backdropImageUrl(apiClient, item, {});
|
const backdropUrl = getRandomItemBackdropImageUrl(apiClient, item);
|
||||||
if (backdropUrl) {
|
if (backdropUrl) {
|
||||||
resultInfo.backdropUrl = backdropUrl;
|
resultInfo.backdropUrl = backdropUrl;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1664,7 +1664,13 @@ export class HtmlVideoPlayer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Promise.resolve(dlg.querySelector('video'));
|
const videoElement = dlg.querySelector('video');
|
||||||
|
if (options.backdropUrl) {
|
||||||
|
// update backdrop image
|
||||||
|
videoElement.poster = options.backdropUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Promise.resolve(videoElement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue