Skip to content

Media3重构,页面布局重构优化#49

Merged
cy745 merged 215 commits intomainfrom
dev
Apr 16, 2025
Merged

Media3重构,页面布局重构优化#49
cy745 merged 215 commits intomainfrom
dev

Conversation

@cy745
Copy link
Copy Markdown
Owner

@cy745 cy745 commented Apr 16, 2025

Media3重构,页面布局重构优化

cy745 added 30 commits March 4, 2024 13:52
cy745 added 29 commits February 21, 2025 00:01
- 重构了 seekbar 的更新逻辑,简化了状态管理- 使用 derivedStateOf 和 LaunchedEffect 优化性能
- 移除了冗余的 when 表达式,使代码更加简洁
- 将 launch(Dispatchers.IO) 替换为 withContext(Dispatchers.IO)
-这一更改可以提高性能,因为 withContext 不会额外启动一个协程
- 而是在当前协程的上下文中执行异步任务
- 使用 Animatable 替代 animateFloatAsState 以更好地控制动画
- 优化值更新逻辑,确保平滑过渡和正确同步
- 调整触摸响应和进度更新的处理方式- 重构部分代码以提高可读性和性能
-拆分 SeekbarLayout 为多个子组件,提高代码可读性和可维护性
- 优化动画效果,使用 Animatable 替代手动动画控制
- 改进触摸事件处理逻辑,提高用户体验
- 重构文本显示逻辑,支持动态更新
- 在 SeekbarLayout 中添加 SeekbarSwitcher 组件,用于显示播放模式切换选项
- 新增播放模式切换相关的图标和动画效果
- 优化 seekbar 相关组件,支持播放模式切换功能
- 添加 SlotContent 和 SlotState 接口,用于扩展组件功能
- 实现状态管理和内容展示的分离,提高组件灵活性
- 新增 StickerRow 组件,用于展示歌曲卡片上的贴纸图标
-重构 SongCard 组件,支持自定义贴纸内容和布局
…体 ID 添加逻辑

- 将原有媒体 ID 列表与新添加的媒体 ID 列表的位置对调
- 通过这种方式,确保新添加的媒体 ID 优先显示在播放列表中
- 在 MService 中设置了最大回退时间,以避免播放上一首歌曲时需要点击两次
- 使用了 Long.MAX_VALUE 作为回退时间,确保用户在回退到上一首歌曲时不会遇到延迟
- 在 build.gradle.kts 中添加 Lumo 插件依赖
- 新增 Color、Typography、Ripple 等基础组件和配置文件
- 创建 LMusicTheme 主题,包括暗黑模式支持
- 更新项目配置,启用 Compose 编译器插件
- 修改 LayoutWrapperContent.kt 中的窗口大小判断逻辑
- 更新设置开关组件,使用新的 LumoTheme 风格
- 新增 Switch.kt 文件,实现自定义开关组件
- 调整 Theme.kt,将 LMusicTheme 重命名为 LumoTheme
- 将 getDarkVibrantColor 和 getDarkMutedColor 方法的默认颜色从 Color.LTGRAY 改为 Color.DKGRAY
- 这种修改可以提供更好的颜色对比度,特别是在光线较暗的环境下
- 将平板设备检测条件从宽度尺寸类为 Expanded 修改为非 Compact
-这个修改可以更好地适应不同尺寸的设备,提高用户体验
- 使用 derivedStateOf 和 remember 优化性能
- 根据窗口宽度重新排序历史记录项
-调整网格布局的跨度逻辑
- 在 PlayingTipIcon 组件中,更新了 AnimatedVisibility 的 enter 和 exit 参数
- 添加了 clip = false 参数,以解决动画过程中图标显示的问题
- 新增 SettingSmallProgressSeekBar 组件,用于替代 SettingProgressSeekBar
- 在歌词设置界面中使用新组件替换旧组件
- 调整歌词设置界面布局,增加列高度比例
- 更新字体大小和行高设置的范围
- 修复部分组件的对齐问题
- 引入 LocalDensity以实现更精确的尺寸计算- 动态计算滚动分割高度,提高不同屏幕尺寸的适配性
- 调整内容填充和透明边缘的尺寸,改善滚动体验
- 优化"暂无歌词"提示的显示方式,使用 LyricContentNormal 组件
- 新增 LyricPanel 组件用于显示歌词- 重构 PlayingLayoutExpended组件布局
- 优化 PlayerPanel 组件样式
- 调整 ControlPanel 组件布局
- 添加了单个滑动条和范围滑动条的实现
- 提供了滑动条颜色和样式的自定义选项
- 在 AndroidManifest.xml 中更新了 uses-sdk 配置- 在 build.gradle.kts 中添加了 rebugger 依赖并配置了调试选项
…特率的扫描

- 修改 Audio 数据结构,将比特率默认值设为 -1
- 从 MediaStoreScanner 中移除对比特率的冗余扫描
- 优化 SongInformationCard 中的比特率显示逻辑,仅当比特率大于 0 时才显示
- 在 onMediaMetadataChanged 回调中添加了当前媒体项的更新逻辑
- 通过 browser.currentMediaItem 获取最新的媒体项信息
- 优化了歌曲时长的获取逻辑,但仍需解决可能获取到上一首歌曲时长的问题
- 在 SongInformationCard 中添加音频指纹信息显示
- 使用 Fpcalc 库计算音频指纹- 优化版本名称后缀格式
- 更新 Koin 依赖注入方式
- 调整日期格式化方法
…ice 中添加播放模式监听并更新 ExoPlayer 设置- 优化 MPlayer 中的播放模式判断逻辑

- 重构 PlayMode 类,使用枚举替代接口实现
… 布局,用于展示专辑封面

- 使用 Image 组件显示默认音乐图标
- 使用 AsyncImage 组件异步加载专辑封面,并添加交叉淡入效果
- 更新 coil3 版本至3.1.0 以支持新功能
- 将 lib-decoder-flac 从外部 AAR 文件改为项目内部模块依赖
- 新增 lib-decoder-flac模块到 settings.gradle.kts 中
- 更新 lplayer/build.gradle.kts 中的依赖引用
- 更新播放列表时增加是否开始播放的控制
- 添加暂停当前歌曲并记住位置的功能
- 修复播放历史记录的逻辑- 优化媒体元数据更新和时长获取
- 调整了绘制顺序,先绘制原始内容,再进行模糊处理
- 修改了注释,更准确地描述了绘制逻辑
- 优化了代码结构,提高了可读性
@cy745 cy745 merged commit 1663c57 into main Apr 16, 2025
1 of 3 checks passed
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.

1 participant