feat(music): 新增桌面音乐播放器和音乐库#41
Open
nekoili wants to merge 7 commits into
Open
Conversation
- 使用 dart_vlc 实现真正的桌面内联音频播放 - 播放队列管理:顺序/随机/单曲循环/列表循环 - 全屏播放界面:封面、标题、进度条、上一首/下一首/播放暂停 - 从专辑详情页直接推送歌曲到播放器,无需跳转到条目页 - 播放队列弹窗:可查看和跳转到队列中的任意歌曲 - 随机播放按钮使用随机起点
- 创建 LRC/A2 格式歌词解析器 (utils/lyrics_parser.dart) - 支持标准 LRC 格式 [mm:ss.xx]歌词 - 支持 A2 增强格式 <mm:ss.xx>逐字<mm:ss.xx>歌词 - 支持元数据标签解析 (ti/ar/al/by/offset) - 逐字时间戳和单词进度计算 - 创建卡拉OK歌词组件 (component/lyrics_widget.dart) - 竖排歌词列表模式:当前行高亮 + 渐变色 - 横排桌面歌词模式:单行卡拉OK效果 - 逐字跟随播放进度高亮 - 自动滚动到当前行 - NowPlayingPage 集成 - 歌词显示/隐藏切换 - 横排/竖排歌词布局切换 - 当前播放进度实时同步 - 从附件资源自动匹配 .lrc 歌词文件
- 移除已不存在的 durationStream 监听器(由 positionStream 替代) - 修复 PositionState.position/duration 可空类型的赋值 - ProgressBar.total 改为直接传入 _duration
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.
桌面音乐播放器
实现完整的音乐播放功能,包括音乐库浏览和播放。
实现内容
lib/api/music/MusicApi.dart— 音乐模块后端 API 对接lib/api/music/SubsonicApi.dart— Subsonic 协议流媒体播放对接lib/music/music_library.dart— 音乐库核心实现lib/layout.dart— 导航栏集成Closes #(新增桌面音乐播放器)