之前想做个音乐分享平台,让大家能分享好听的音乐
主要功能:
- 音乐上传:支持多种音质(标准、HQ、SQ、Hi-Res等),上传能获得贡献值
- 在线播放:底部播放器,支持播放/暂停、上一首下一首,进度条,音量控制
- 搜索功能:按歌名/歌手搜索,结果按官方认证,播放量,音质排序
- 求歌曲:用户可以发布求歌请求,别人帮忙上传能获得奖励
- 商店系统:用贡献值买虚拟物品或兑换券
- 任务广场:显示待解决的求歌任务
还有管理员后台,能管理用户,审核注册,封禁违规内容这些
后端用 Flask + Python,前端就是纯 HTML + CSS,数据存在 JSON 文件里。
我主要做了这些玩意:
1. 用户系统:注册、登录、权限验证、封禁和解封功能
2. 音乐上传:音质检测、文件大小限制、贡献值计算
3. 播放器:Web Audio API 实现,支持进度拖动、音量控制、自动播放下一首
4. 搜索功能:按关键词过滤,多重排序规则(认证优先、播放量、音质)
5. 商店和贡献值:购买物品、退款逻辑、虚拟文件下载
6. 求歌曲任务:发布请求、解决任务、奖励发放
遇到的问题:
- 音频播放切换时会有AbortError,后来用setTimeout延迟加载解决了
- 搜索排序规则比较复杂,写了优先级映射表
- 文件上传要处理不同音质的大小限制,做了配置表
现在平台已经能正常运行,支持用户上传,播放,下载音乐,还有完整的用户管理功能。