# Mustify **Repository Path**: Kaytiz/mustify ## Basic Information - **Project Name**: Mustify - **Description**: mustify音乐播放器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-28 - **Last Updated**: 2026-06-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Mustify - 音乐播放器 一个基于 **PyQt6** 的桌面音乐播放器,采用深色主题设计,灵感来源于 QQ 音乐客户端。 ## 功能特性 ### 核心功能 - **本地音乐管理**:扫描并导入本地音频文件(支持 MP3/WAV/FLAC/OGG/M4A),自动解析歌曲元数据(歌曲名、歌手、专辑、时长) - **在线搜索**:全局搜索歌曲、歌手和专辑 - **歌单系统**:创建/删除歌单,添加/移除歌曲,歌单广场浏览 - **收藏系统**:收藏歌单和歌曲,快速访问 - **播放控制**:播放/暂停、上一曲/下一曲、进度拖拽、音量调节(0-100) - **播放模式**:顺序播放、单曲循环、随机播放 - **播放队列**:可视化播放队列管理,支持从队列移除歌曲 - **用户系统**:注册/登录、个人头像上传、个性签名编辑 - **评论系统**:歌曲评论、点赞、嵌套回复 - **音频可视化**:64 柱频谱条形图,50ms 平滑动画过渡 - **走马灯滚动**:歌曲信息在播放栏自动滚动显示 ### 页面结构 | 页面 | 说明 | |------|------| | 首页推荐 | 歌单卡片流式布局,自适应窗口大小 | | 歌单广场 | 浏览所有歌单,查看歌单详情 | | 搜索 | 全局搜索歌曲/歌手/专辑 | | 本地音乐 | 本地音乐管理,批量导入和操作 | | 我的收藏 | 收藏的歌单和歌曲 | | 播放队列 | 当前播放队列,支持模式切换和歌曲移除 | | 评论区 | 发表/删除评论、点赞、嵌套回复 | ## 项目结构 ``` mustify/ ├── main.py # 程序入口 ├── main_window.py # 主窗口(四分栏布局) ├── database.py # SQLite 数据库管理 ├── init_data.py # 数据初始化脚本 ├── pages/ # 页面模块 │ ├── home_page.py # 首页推荐 │ ├── playlist_page.py # 歌单详情 │ ├── search_page.py # 搜索页 │ ├── local_music_page.py # 本地音乐管理 │ ├── favorites_page.py # 收藏页 │ ├── user_page.py # 用户页 │ ├── comment_page.py # 评论区 │ └── queue_page.py # 播放队列 ├── widgets/ # 控件模块 │ ├── sidebar.py # 左侧导航栏 │ ├── top_nav.py # 顶部导航栏 + 登录弹窗 │ ├── player_bar.py # 底部播放控制栏 │ └── visualizer.py # 音频波形可视化 ├── functions/ # 资源目录 │ ├── musics/ # 本地音乐文件 │ ├── images/ # 界面图标和专辑封面 │ ├── covers/ # 歌单封面 │ └── avatars/ # 用户头像 └── mumusic/ └── music_data.db # SQLite 数据库文件 ``` ## 环境要求 - **Python** >= 3.8 - **PyQt6**(GUI 框架,含 QtMultimedia 音频引擎) - **mutagen**(音频元数据解析) ## 安装与运行 ### 1. 安装依赖 ```bash pip install PyQt6 mutagen ``` ### 2. 初始化数据(可选) 首次运行前,可执行数据初始化脚本,自动创建测试用户和示例数据: ```bash python init_data.py ``` 该脚本会: - 创建测试用户:`testuser` / `123456` 和 `admin` / `admin` - 创建示例歌单:热门精选、经典老歌、轻音乐 - 自动扫描 `functions/musics/` 目录下的音频文件并导入数据库 ### 3. 启动应用 ```bash python main.py ``` ## 使用说明 ### 播放音乐 - 在首页、歌单详情、搜索结果或本地音乐页面中,**双击歌曲行**即可播放 - 底部播放栏提供完整的播放控制:播放/暂停、上下曲切换、进度拖拽、音量调节 ### 播放模式 - **🔁 顺序播放**:按队列顺序播放,播完后循环 - **🔂 单曲循环**:重复播放当前歌曲 - **🔀 随机播放**:在队列中随机选择下一首 ### 歌单管理 - 在歌单广场可创建新歌单 - 右键底部播放栏歌曲 → "添加到歌单" 可将当前歌曲加入指定歌单 - 在歌单详情页可删除歌单或移除歌曲 ### 本地音乐导入 在"本地音乐"页面中,可将本地音频文件导入到应用中,支持 MP3、WAV、FLAC、OGG、M4A 格式。 ### 评论 在评论区可发表对歌曲的评论,支持点赞和嵌套回复。 ## 技术架构 | 技术 | 说明 | |------|------| | GUI 框架 | PyQt6 (Fusion 风格) | | 数据库 | SQLite(WAL 模式,线程安全) | | 音频引擎 | PyQt6.QtMultimedia (QMediaPlayer + QAudioOutput) | | 元数据解析 | mutagen | | 设计风格 | 深色主题,QQ 音乐经典绿色高亮 (#1db954),微软雅黑字体 | | 布局 | 四分栏(侧边栏 + 顶栏 + 内容区 + 底部播放栏) | ## 数据库表结构 | 表名 | 用途 | |------|------| | `users` | 用户信息(用户名、密码、头像、签名) | | `artists` | 歌手信息 | | `songs` | 歌曲信息(标题、歌手、专辑、时长、文件路径、封面) | | `playlists` | 歌单信息(名称、创建者、封面、描述) | | `playlist_songs` | 歌单-歌曲多对多关联 | | `favorites` | 收藏歌单 | | `song_favorites` | 收藏歌曲 | | `comments` | 评论(支持嵌套回复和点赞) | ## License 本项目仅用于学习和研究目的。