1、立项背景和目标
随着生活节奏加快,用户在工作和学习中越来越需要背景音乐提升专注力或放松心情。Vibe Music 旨在通过情绪标签(如“放松”“专注”“活力”)引导用户快速找到适合当下氛围的音乐,打造轻量级、无干扰的音乐体验。
2、软件功能、核心功能模块的介绍
情绪音乐推荐:根据用户选择的情绪(如“焦虑”“困倦”)推荐对应氛围歌单。
音乐播放器:支持播放、暂停、上一首、下一首、进度拖拽、音量控制。
收藏歌单:用户可将喜欢的音乐收藏到本地。
背景动效:根据音乐节奏动态变化背景颜色(Canvas实现)。
3、业务流程、功能路径描述
用户打开App → 选择当前情绪 → 系统推荐歌单 → 点击歌曲播放 → 播放器页显示歌曲信息、动效 → 可收藏、切换歌曲 → 返回首页重新选择情绪。
1、整体架构和设计思路,不同模块使用的技术栈
整体采用Vue3组合式API + Vite构建,状态管理使用Pinia。
播放器核心使用Howler.js处理音频播放与进度控制。
动效模块通过Canvas与AudioContext结合实现音频可视化。
收藏功能使用LocalStorage持久化存储用户数据。
2、负责模块和结果
负责前端整体架构搭建、播放器组件开发、情绪推荐逻辑实现。
实现播放器核心功能,支持10+首歌曲的流畅切换。
完成3种情绪标签的推荐算法,覆盖30+首歌曲。
优化首次加载时间,通过懒加载和代码拆分将FCP从2.3s降至1.2s。
3、遇到的难点、坑,和解决方案
难点:音频可视化与播放器状态同步问题。
解决方案:使用Howler.js提供的seeker事件结合requestAnimationFrame实时更新Canvas。
坑:移动端自动播放限制。
解决方案:用户首次点击播放按钮后初始化音频上下文,避免浏览器策略拦截。