From 7c991c04be321a90c852daacde15c27b4d41ddc5 Mon Sep 17 00:00:00 2001 From: beyond Date: Sun, 6 Sep 2026 18:37:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=20=E5=89=A7=E9=9B=86?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E5=99=A8logo=E4=BD=BF=E7=94=A8series=20ID?= =?UTF-8?q?=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 剧集的logo在series级别,不是episode级别 - 构建logo URL时检测是否为剧集(seriesId != id) - 剧集使用seriesId请求logo,电影使用自身id - 确保电视剧和电影都能正确显示emby艺术文字 Co-Authored-By: Claude Opus 5 (1M context) --- .../myapplication/navigation/AppNavHost.kt | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/example/myapplication/navigation/AppNavHost.kt b/app/src/main/kotlin/com/example/myapplication/navigation/AppNavHost.kt index f9feed9..dd3a9b6 100644 --- a/app/src/main/kotlin/com/example/myapplication/navigation/AppNavHost.kt +++ b/app/src/main/kotlin/com/example/myapplication/navigation/AppNavHost.kt @@ -499,11 +499,25 @@ private fun PlayerDestination( if (playbackUrl.isNullOrBlank()) playbackError = playbackUrlFailedMessage } + // Compute logo URL: for episodes, logo is on the series item, not the episode + val logoUrl = target?.let { t -> + val serverUrl = server?.fullUrl.orEmpty() + if (serverUrl.isBlank()) null + else { + val logoTag = t.logoImageTag + if (logoTag != null) { + // Use series ID for episode logos (logo lives on series, not episode) + val logoItemId = if (t.seriesId != null && t.id != t.seriesId) t.seriesId else t.id + "$serverUrl/emby/Items/$logoItemId/Images/Logo?tag=$logoTag&maxWidth=600&quality=90" + } else null + } + }.orEmpty() + when { target != null -> VideoPlayerScreen( title = target.name, seriesName = target.seriesName.orEmpty(), - titleLogoUrl = target.getLogoUrl(server?.fullUrl.orEmpty()).orEmpty(), + titleLogoUrl = logoUrl, serverName = server?.name.orEmpty(), serverIconUrl = server?.iconUrl.orEmpty(), serverUrl = server?.fullUrl.orEmpty(),