EmbyCrackedClient/web/modules/thememediaplayer.js

1 line
2.2 KiB
JavaScript
Raw Permalink Normal View History

2025-06-25 11:46:04 +08:00
import events from"./emby-apiclient/events.js";import connectionManager from"./emby-apiclient/connectionmanager.js";import userSettings from"./common/usersettings/usersettings.js";import playbackManager from"./common/playback/playbackmanager.js";let currentOwnerId,currentPlayer=playbackManager.getCurrentPlayer();function playThemeMedia(items,ownerId){items.length?!currentOwnerId&&playbackManager.isPlaying()||playbackManager.play({items:items,fullscreen:!1,enableRemotePlayers:!1}).then(function(){currentOwnerId=ownerId}):stopIfPlaying()}function stopIfPlaying(){currentOwnerId&&playbackManager.stop(),currentOwnerId=null}let excludeTypes=["CollectionFolder","UserView","Program","SeriesTimer","Timer","Person","TvChannel","Channel","User","Plugin","Device","Tag","Genre","GameGenre","MusicGenre","Studio","Log"];function loadThemeMedia(item){var apiClient,enableThemeVideos;!item.CollectionType&&!excludeTypes.includes(item.Type)&&item.ServerId&&item.Id?(apiClient=connectionManager.getApiClient(item),enableThemeVideos=userSettings.enableThemeVideos(),apiClient.getThemeMedia(item.Id,{UserId:apiClient.getCurrentUserId(),InheritFromParent:!0,EnableThemeSongs:userSettings.enableThemeSongs(),EnableThemeVideos:enableThemeVideos}).then(function(themeMediaResult){var themeMediaResult=themeMediaResult.ThemeVideosResult.Items.length?themeMediaResult.ThemeVideosResult:themeMediaResult.ThemeSongsResult,ownerId=themeMediaResult.OwnerId;ownerId!==currentOwnerId&&playThemeMedia(themeMediaResult.Items,ownerId)})):stopIfPlaying()}document.addEventListener("viewshow",function(e){var player;"true"===e.detail.params?.asDialog||(player=currentPlayer)&&!player.isLocalPlayer||e.detail.supportsThemeMedia||playThemeMedia([],null)},!0),document.addEventListener("itemshow",function(e){var player=currentPlayer;player&&!player.isLocalPlayer||(player=e.detail.item)&&player.ServerId&&loadThemeMedia(player)},!0),document.addEventListener("itemclear",function(e){var player=currentPlayer;player&&!player.isLocalPlayer||playThemeMedia([],null)},!0),events.on(playbackManager,"playerchange",function(e,player){currentPlayer=player}),events.on(playbackManager,"playqueuestart",function(e,player,state){state.IsBackgroundPlayback||(currentOwnerId=null)});