github urbanescavenger/BiliMT v3.0.13-alpha.6

pre-release8 hours ago

TV 播放器 UI 全面对齐官方客户端 + 三源底栏统一(P11-124)

变更

  • B站 播放器版式重排(对齐官方客户端):①顶部三行——标题(28sp、最多 2 行)→ 元信息单行(UP主 · 播放量 · 弹幕数 · 点赞 · 收藏 · 投币 · 发布于 <时间>,以 · 串联、值为 0 的项整项跳过、超长直接裁掉)→ 动作行(点赞 / 收藏 / 投币 / 稍后再看 / 评论;图标 + 文字、不带计数——计数在上一行);三连由此从底栏搬走。②底栏重排——最左是倍速文案 1.0x,其后一排裸图标(UP主页 / 画面旋转 / 刷新 / 字幕 / 弹幕开关 / 播放序列 / 播放列表 / 相关视频 / 画质 / 设置),按内容宽紧挨、整行靠左;右下角的「在看 / 弹幕 / 画质」状态文案整块去掉。③焦点扩成三级:控制行 ⟷ 进度条 ⟷ 顶部动作行(↑ 逐级向上、↓ 逐级回),任何时刻只有一处高亮。
  • 底栏新增三个入口:「刷新」(重新解析并重载当前视频,保持当前播放点)、「画面旋转」(按一次顺时针 +90°:0→90→180→270,旋转后画面铺满整屏)、「播放序列」(列表播放 / 单视频循环两态,图标 repeat / repeat_one 按状态切换)。
    • 旋转踩过一个硬坑:Android 的 SurfaceView 不支持旋转变换(只吃尺寸/位置变化,180° 同样无效)——这是「按下没反应」的根因。修法:旋转态改由 TextureView 承载(PlayerViewsurface_type 只能从 XML 传,故新增 res/layout/view_player_texture.xml),并改由视图自己的 View.rotation 驱动(Compose 的 graphicsLayer 在这条链上根本落不下去);0° 时仍回默认 SurfaceView,不牺牲默认播放性能。
    • 单视频循环用 REPEAT_MODE_ONE,并在 prepare 完成后重设一次(刷新 / 切清晰度 / 切音轨都会重建会话,不重设会丢态);循环时播完链路(下一 P / 自动推荐 / 播完退出)被显式挡掉。
  • 画质显示改成文字 HD、字幕改成 CC 图标(未选字幕轨时图标压暗;真实档位与当前字幕轨改由无障碍描述承载);暂停图标从屏幕正中挪到右下角
  • YouTube 底栏对齐同一套(11 项:1.0x | UP主页 | 画面旋转 | 刷新 | 字幕 | 播放序列 | 播放列表 | 相关视频 | 评论 | HD | 设置;YouTube 无弹幕故没有弹幕开关,评论留在底栏);影视库(TVBox)/ IPTV / 红果 统一为 8 项(1.0x | 画面旋转 | 刷新 | 播放序列 | 播放列表 | 相关视频 | HD | 设置——去掉 UP主页与字幕:这三个源没有 UP 信息、多数视频也无字幕轨;字幕仍可从设置面板进)。三份项集显式维护,不再受枚举声明顺序影响(顺带修掉「倍速文案排到设置之后」的顺序错位)。
  • 清理:删掉旧底栏那套渲染(PlayerBottomOverlay / 玻璃方块按钮 / 状态文案 / TvProgressBar 等,净约 -480 行,均全仓确认 0 引用);「在看」在线人数的空转轮询(状态 / job / 定时器 / 接口调用)整条清除——它已无消费者,数据源保留在仓库未接回;直播人气是另一条路,未动。

真机判据

  • B站:顶部三行齐全(标题 2 行 / 元信息 / 动作行),底栏 11 项且 1.0x 在最左、右下无状态文案;↑ 从控制行走到进度条再到动作行,动作行内 ←→ 移动、OK 触发(点赞直投 / 投币弹确认 / 收藏夹 / 稍后再看 / 评论),↓ 逐级退回。
  • 旋转:按一下顺时针 90°,再按 180 / 270 / 0;旋转后铺满整屏(只看得到源中间约 1/3 横条,这是「铺满」的必然裁切);旋转态下弹幕 / 控制层 / seek 预览不跟转
  • 播放序列:切到单视频循环后播完应循环,不跳下一 P、不自动推荐、不自动退出。
  • YouTube 与影视库 / IPTV / 红果:底栏项集与顺序如上,旋转 / 刷新 / 播放序列在它们上面同样可用;焦点为两级(无顶部动作行)。
  • 「在看」在线人数在点播播放器任何源都不再出现。

Don't miss a new BiliMT release

NewReleases is sending notifications on new releases.