import { ArrowLeft, Gauge, RefreshCw, Sparkles } from 'lucide-react' import type { PlayerMode } from './playerPageModel' import { PLAYER_ICON_BUTTON } from '../components/playerTheme' // PlayerTopBar — 播放器顶部的极简浮层。 // // 以前这里只有「返回」和一个播放方式药丸按钮,用户看不到自己在看什么;而播放方式 // 又要和控制栏里的画质/倍速混在一起点。现在改成 B 站那样:左边是返回图标 + 当前 // 媒体标题,右边只留一个只读的播放方式状态标签(真正的切换入口收进了控制栏的 // 「设置」面板),顶栏因此不再参与「一堆药丸按钮」的视觉噪音。 type PlayerTopBarProps = { /** 当前播放的媒体标题。 */ title?: string /** 标题下的次要信息(集数、版本等)。 */ subtitle?: string directOnly: boolean isDirectStream?: boolean directStreamLabel?: string mode: PlayerMode onBack: () => void } export function PlayerTopBar({ title, subtitle, directOnly, isDirectStream, directStreamLabel, mode, onBack, }: PlayerTopBarProps) { const status = isDirectStream ? { icon: , label: directStreamLabel || '直连播放', title: directStreamLabel ? `${directStreamLabel},默认直连播放,不进行转码` : '远程直连播放,不进行转码', } : directOnly ? { icon: , label: '客户端直连解码', title: '宿主机不转码,由客户端本地解码直连', } : mode === 'hls' ? { icon: , label: 'HLS 转码', title: '当前为 HLS 转码播放,可在控制栏「设置」里切回直接播放', } : { icon: , label: '直接播放', title: '当前直接播放原始文件,可在控制栏「设置」里切到 HLS 转码', } return (
{title ? (

{title}

{subtitle ? (

{subtitle}

) : null}
) : null}
{status.icon} {status.label}
) }