Skip to content

ui(player): add dynamic animations for speed/brightness and adaptive volume icons#1754

Open
yasz1234 wants to merge 1 commit intoPredidit:mainfrom
yasz1234:feature/ui-upgrade
Open

ui(player): add dynamic animations for speed/brightness and adaptive volume icons#1754
yasz1234 wants to merge 1 commit intoPredidit:mainfrom
yasz1234:feature/ui-upgrade

Conversation

@yasz1234
Copy link

优化播放器控制面板交互视觉反馈

起因:
交互反馈单一:原播放器在调节音量和亮度以及长按进行倍速播放时,顶部提示框仅有静态图标,缺乏直观的动态反馈,视觉体验较为生硬。

改进方案:

  1. 实现多级自适应音量图标
    • 弃用单一静态图标,根据 playerController.volume 百分比实时映射四种状态:静音 (volume_off)、低音量 (volume_mute)、中音量 (volume_down)、高音量 (volume_up)。
  2. 引入亮度图标关联旋转动画
    • 使用 Transform.rotate 包装亮度图标,将 brightness 线性值(0.0 - 1.0)映射至旋转弧度(0 - 2π),实现图标随滑动实时旋转的物理感反馈。
  3. 新增倍速动态流光效果
    • 实现 _buildFlowingArrows 动画组件,通过 AnimationController 驱动 math.sin 改变双箭头的透明度与位移,在倍速播放时提供持续的动效引导。

@Predidit
Copy link
Owner

我对AI实现的PR没有意见,但是需要符合当前项目架构

在页面中直接引入 dart:math 进行动画曲线计算很不干净,这应该被封装为独立的 widget,暴露适当的属性,并放置在 /lib/bean/widget 目录下

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants