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 { includesAny } from '../../utils/container.ts';
|
||||
import { getItems } from '../../utils/jellyfin-apiclient/getItems.ts';
|
||||
import { getRandomItemBackdropImageUrl } from '../../utils/url';
|
||||
|
||||
const UNLIMITED_ITEMS = -1;
|
||||
|
||||
|
@ -154,28 +155,6 @@ function mergePlaybackQueries(obj1, obj2) {
|
|||
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) {
|
||||
container = (container || '').toLowerCase();
|
||||
|
||||
|
@ -2693,7 +2672,7 @@ class PlaybackManager {
|
|||
title: item.Name
|
||||
};
|
||||
|
||||
const backdropUrl = backdropImageUrl(apiClient, item, {});
|
||||
const backdropUrl = getRandomItemBackdropImageUrl(apiClient, item);
|
||||
if (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