Repository navigation
优化UI页面操作方式,为用户提供更加便捷的操作 - #26
Merged
Merged
Conversation
1. 为PlayerComment组件新增嵌入式布局支持,可通过props控制显示与交互 2. 重构移动端全屏播放器页面管理逻辑,支持评论/歌词/信息多页面自由切换 3. 适配不同页面类型的手势交互高度与滑动逻辑 4. 新增评论页专属样式与移动端视觉优化
- 拆分全局页面缩放为手机竖屏/平板模式独立配置 - 将缩放实现从viewport meta改为CSS transform变量控制 - 新增安卓全面屏底部安全区优化功能 - 统一使用CSS变量替代硬编码的vh/vw单位 - 修复弹窗teleport脱离缩放上下文的布局问题 - 更新设置页面适配新的缩放配置项 - 优化设备检测逻辑避免内存泄漏
- 新增PlayerQuickActionsMenu组件,集成音频频谱、动态封面等快捷开关与AMLL效果配置 - 在移动端全屏播放器与控制栏中添加快捷操作菜单入口 - 重构播放器元信息自动隐藏逻辑,支持弹层持有期间阻止控制栏隐藏 - 新增AMLL动态背景切换与记忆功能,完善设置项迁移与状态管理 - 优化歌词渲染key,根据歌曲ID与歌词类型动态更新
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📌 变更类型
📝 变更说明
本 PR 包含三个独立但相互衔接的改进,聚焦移动端播放器体验:
1. 评论页嵌入竖屏播放器(
7788731)PlayerComment新增嵌入式布局,支持通过 props 控制显示与交互边界,可作为独立子页内嵌入FullPlayerMobile的多页面管理逻辑,评论 / 歌词 / 信息三个子页可自由切换2. 页面缩放体系重构(
cf46ca23)pageZoom拆分为phonePortraitPageZoom/padPageZoom两个独立配置,手机竖屏与平板 / 横屏各自独立缩放viewportmeta initial-scale改为CSS transform+--page-zoom-*自定义属性,移动端可独立切换缩放比而不影响布局栅格--android-fullscreen-safe-bottom,避免底部按钮被系统手势导航条/返回按钮遮挡body移到#app,弹层维持原生比例)useDevice改造为模块级单例 listener,修复 21 个组件重复 mount 时各自注册 resize / orientationchange 监听导致的内存泄漏--page-zoom-100vh / --page-zoom-100vw缩放变量,保留视觉比例pageZoom写入分支;Settings schema 升至 18 → 19,迁移逻辑保证老用户升级后 UI 不会被等比缩到一半3. 播放器快捷操作菜单(
d6008480)PlayerQuickActionsMenu组件,集成音频频谱、动态封面、桌面歌词、逐词效果、在线 TTML、音量滑块;以及独立的 AMLL 效果分组:逐词渲染、弹簧效果、AMLL 动态背景、隐藏已播放、歌词模糊FullPlayerMobile顶部信息行 &PlayerControl控制栏(平板/桌面)分别接入,变体样式自适应usePlayerMetaHold引用计数 hold 机制 +PLAYER_META_HOLD_KEYprovide/inject:popover 打开期间 acquire,关闭后 release,期间跳过 FullPlayer 的 3 秒自动隐藏定时器,避免 trigger DOM 在弹层显示期间被卸载造成 popover 浮位AMLL 动态背景开关持久化记忆上次非 animation 背景类型(lastNonAnimationPlayerBg),关闭时回退到用户真正记忆中的偏好;首次激活时默认开启"背景跳动效果"(低频脉动),后续切换尊重用户偏好(amllAnimationBgEverActivated标志位)AMLL 逐词渲染开关 toggle 为true时弹出一次性n-messagewarning:"使用此模式将增加发热与耗电"AMLyric根节点:key改为${songId}|${yrc/lrc}复合 key:切歌仍重建保留 fade,showWordLyrics切换时(yrc↔lrc 词数变化)也重建,规避 LyricPlayer 内部 word Animation 缓存对应不上新词数的潜在状态错乱lastNonAnimationPlayerBg/amllAnimationBgEverActivated的迁移📱 影响范围
✅ 自检清单
devpnpm lint且无 warningpnpm typecheck且无报错📸 截图 / 录屏 (UI 类 PR 必填)
🧪 测试方式
A. 评论页嵌入
B. 页面缩放
💬 其他说明 (选填)
phonePortraitPageZoom、padPageZoom、androidFullscreenSafeAreaOptimize、lastNonAnimationPlayerBg、amllAnimationBgEverActivated)。老用户升级时旧pageZoom强制重置为 100%(因 viewport 缩放 ≠ CSS 缩放,语义完全不同,直接迁移会让 UI 被等比缩小)FullPlayer(平板/桌面)路径 provide;FullPlayerMobile无 autoHide 体系,inject 安全降级为 null,行为不受影响:key复合化:showWordLyrics切换时 LyricPlayer 会重新创建,带 ~200ms idle 期空白,这是规避 word Animation 缓存对应不上新词数潜在 bug 的取舍