# 基于LVGL的mp3播放器 **Repository Path**: yanfeng_gitee/multimedia-player ## Basic Information - **Project Name**: 基于LVGL的mp3播放器 - **Description**: 切换到./multimedia-player/SdlPlayer/build文件夹执行cmake .. && make ./player 即可使用 编译失败就rm -rf ./* 再cmake .. &&make - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-09-15 - **Last Updated**: 2025-11-21 ## Categories & Tags **Categories**: multimedia **Tags**: None ## README # SDL多媒体播放器项目总结 ## 项目概述 这是一个使用C语言和LVGL图形库开发的多媒体播放器应用程序。该播放器具有现代化的图形用户界面,支持音乐播放、图片浏览和系统设置等功能。 ## 技术架构 - **编程语言**: C语言 - **图形库**: LVGL (Light and Versatile Graphics Library) - **平台**: 嵌入式系统 - **主要特性**: 图形界面、音频播放、图片浏览、用户认证 ## 目录结构 ``` src/ ├── desktop.c # 桌面主界面 ├── login.c # 登录界面 ├── mp3list.c # 音乐列表管理 ├── play.c # 音乐播放控制 ├── setting.c # 系统设置 ├── showPic.c # 图片显示 └── pictrue/ # 图形资源目录 ├── music.c # 音乐图标 ├── music1.c # 音乐相关图标 ├── photo.c # 图片浏览图标 ├── pic_login.c # 登录界面图标 └── setting.c # 设置图标 ``` ## 功能模块详解 ### 1. 登录模块 (login.c) - 用户密码认证系统 - 虚拟键盘输入支持 - 登录验证和错误处理 - 登录成功后跳转到主界面 ### 2. 桌面主界面 (desktop.c) - 应用程序主入口界面 - 功能模块导航中心 - 电池电量显示 - 提供三个主要功能入口: - 音乐播放器 - 图片浏览器 - 系统设置 ### 3. 音乐播放模块 (play.c, mp3list.c) - 音乐文件播放控制 - 播放列表管理 - 播放进度控制 - 支持播放、暂停、停止等操作 - 使用Unix管道进行进程间通信控制音频播放 ### 4. 设置模块 (setting.c, pictrue/setting.c) - 用户密码修改功能 - 系统设置界面 - 输入验证和错误提示 ### 5 .游戏模块 - 添加游戏功能模块 - 可自己添加可执行程序到build 以游玩 - ## 核心技术特点 ### 图形界面 - 基于LVGL图形库构建现代化用户界面 - 支持触摸交互 - 响应式布局设计 ### 多进程架构 - 使用fork创建子进程处理音频播放 - 父子进程间通过管道进行通信 - 避免UI界面因音频处理而阻塞 ### 资源管理 - 图片资源直接编译到程序中 - 减少运行时资源加载时间 - 提高程序启动速度 ### 事件驱动 - 基于LVGL事件系统处理用户交互 - 支持键盘、触摸等多种输入方式 - 实时响应用户操作 ## 工作流程 1. **启动与认证** - 程序启动显示登录界面 - 用户输入密码进行认证 - 认证成功进入主桌面 2. **主界面导航** - 在桌面界面选择所需功能 - 可选择音乐播放、游戏或系统设置 3. **音乐播放** - 进入音乐播放界面 - 选择播放列表中的音乐文件 - 控制播放、暂停、停止等操作 - 查看和调整播放进度 - 调整音量大小 4. **系统设置** - 修改用户登录密码 - 管理用户账户安全 ## 项目优势 1. **轻量级**: 基于LVGL,适合资源受限的嵌入式环境 2. **模块化**: 功能模块分离,便于维护和扩展 3. **用户友好**: 直观的图形界面,良好的用户体验 4. **稳定可靠**: 使用成熟的LVGL图形库和标准C库 5. **易于移植**: 结构清晰,可适配不同硬件平台 ## 可能的改进方向 1. 增加更多的媒体格式支持 2. 实现播放历史记录 3. 改进用户界面视觉效果 4. 实现更好的交互效果 5. 显示日期时间