diff --git a/web/src/pages/PlayerPage.tsx b/web/src/pages/PlayerPage.tsx index 63be638..d90f70b 100644 --- a/web/src/pages/PlayerPage.tsx +++ b/web/src/pages/PlayerPage.tsx @@ -37,7 +37,7 @@ import { type SubtitlePosition, type SubtitleStylePreset, } from '../utils/subtitleDisplay' -import { pickPlayerMode, needsTranscodeForBrowser, isDirectStreamMedia, isStrmMedia, type PlayerMode } from './playerPageModel' +import { pickPlayerMode, needsTranscodeForBrowser, isDirectStreamMedia, isStrmMedia, shouldShowPlayerDiagnostics, type PlayerMode } from './playerPageModel' import { classifyDirectPlayError, directPlayFailureCopy, directStallTimeoutMs, DIRECT_SEEK_GRACE_MS } from './directPlayError' import type { DirectPlayFailureReason } from './directPlayError' import { canSeekDirectNow, DIRECT_SEEK_WAIT_MS } from './directPlaySeek' @@ -181,6 +181,7 @@ export function PlayerPage() { const [playerError, setPlayerError] = useState('') // 媒体元数据加载失败(404 / 无权限等):舞台区直接展示错误而不是永远「加载中」 const [loadError, setLoadError] = useState('') + const diagnosticsVisible = shouldShowPlayerDiagnostics(playerError, loadError) // 「客户端直连解码」模式:宿主机不转码,播放器强制 direct play、隐藏 HLS 切换。 const [directOnly, setDirectOnly] = useState(false) const [directOnlyKnown, setDirectOnlyKnown] = useState(false) @@ -2608,16 +2609,18 @@ export function PlayerPage() { } /> ) : null} - - {diagnosticsOpen && ( + {diagnosticsVisible && ( + + )} + {diagnosticsVisible && diagnosticsOpen && (