1748 字
9 分钟
Setu Cloud v2.5 音乐功能重磅上线!
全新网易云音乐集成功能,打造一站式娱乐控制台
2025-12-27
统计加载中...

序言#

距离 Setu Cloud v2 正式上线已经过去两周了,这段时间收到了很多小伙伴的反馈和建议。在保持原有图片 API 服务稳定运行的基础上,我们决定做一些”不务正业”的事情——给控制台加入音乐播放功能!

没错,现在你可以一边管理 API Key,一边听着网易云音乐放松心情了。这次更新不仅仅是简单的功能堆砌,而是从用户体验出发,打造了一套完整的音乐管理系统。

Setu Cloud 地址: https://cloud.yukiryou.icu/


核心更新#

1. 全局音乐播放器#

我们在控制台底部集成了一个全局音乐播放器,无论你切换到哪个页面,音乐都不会停止。

主要特性:

  • 固定底部设计:采用毛玻璃效果,与整体 UI 风格完美融合
  • 展开/收缩模式:可一键切换简洁/完整模式,节省屏幕空间
  • 完整播放控制:上一曲、播放/暂停、下一曲、播放模式切换
  • 实时进度条:可拖拽跳转到任意时间点
  • 音量调节:支持静音和音量滑块控制
  • 歌词展示:点击展开歌词面板,支持点击跳转、自动滚动跟踪

预览#

播放器


2. 音乐搜索与播放#

集成了网易云音乐 API,可以搜索海量曲库并在线播放。

核心功能:

  • 智能搜索:支持歌曲名、歌手、专辑全文检索
  • 快速操作:每首歌提供 4 个快捷按钮
    • 🎵 播放:立即播放并加入播放列表
    • 📋 添加到播放列表:仅添加不播放,适合批量收藏
    • 添加到歌单:保存到自定义歌单
    • ⬇️ 下载:一键下载高品质音频
  • 字段映射优化:完美适配网易云 API 返回格式
  • 超时处理:30 秒超时配置,避免长时间等待

预览#

音乐搜索


3. 我的歌单#

支持创建自定义歌单,管理你的音乐收藏。

歌单管理功能:

  • 创建歌单:自定义名称、描述、封面 URL
  • 编辑歌单:随时修改歌单信息
  • 播放模式:支持 4 种播放模式
    • 顺序播放:按顺序播放到最后停止
    • 随机播放:随机选择下一首
    • 列表循环:播放完自动回到第一首
    • 单曲循环:重复播放当前歌曲
  • 歌曲排序:拖拽调整播放顺序
  • 一键播放:直接播放整个歌单
  • 公开/私密:控制歌单是否对外可见

预览#

我的歌单


4. 播放历史#

自动记录播放历史,最多保留 50 条记录。

历史功能亮点:

  • 智能时间显示
    • 1 分钟内 → “刚刚”
    • 1 小时内 → “5 分钟前”
    • 今天 → “今天 14:30”
    • 昨天 → “昨天 20:15”
    • 其他 → “12 月 25 日 18:00”
  • 分页浏览:支持 10/20/50 条每页
  • 快速播放:点击历史记录直接播放
  • 清空历史:一键清空所有记录

预览#

播放历史


5. 播放列表管理#

类似网易云音乐的播放队列功能。

列表特性:

  • 实时队列:显示当前播放列表
  • 音波动画:正在播放的歌曲有动态指示器
  • 快速操作:点击播放、移除歌曲、清空列表
  • 数字徽章:显示列表中的歌曲数量
  • 抽屉设计:侧边滑出,不遮挡主要内容

技术实现细节#

这次音乐功能的实现,涉及了不少技术挑战:

前端架构#

  • 全局状态管理:使用 Pinia 管理音乐播放状态、歌单、历史记录
  • HTML5 Audio API:原生 audio 元素控制播放
  • 自动播放优化:监听 canplay 事件,确保音频加载完成后再播放
  • 歌词解析:正则表达式解析 LRC 格式歌词 [mm:ss.xx]歌词内容
  • 播放模式逻辑:根据不同模式计算下一曲索引

后端集成#

  • 网易云 Token 管理:管理员可配置多个 Cookie,自动轮换使用
  • 播放历史存储:每次播放自动调用后端 API 记录
  • 字段映射:前端转换网易云 API 字段 (ar→artists, al→album, dt→duration)

用户体验优化#

  • 请求超时:默认 30 秒超时,搜索结果限制 10 条避免卡顿
  • 毛玻璃效果:backdrop-filter: blur(20px) 打造视觉统一性
  • 响应式设计:移动端自动隐藏部分信息,保持界面简洁
  • 平滑动画:过渡动画让交互更流畅

快速上手指南#

想要体验音乐功能?只需两步:

第一步:登录控制台 访问 Setu Cloud 官网并登录你的账号。

第二步:开始听歌 在左侧菜单点击 「音乐搜索」,输入你想听的歌曲,点击播放按钮即可。底部会出现全局播放器,切换页面也不会停止播放!

可选:创建歌单 点击 「我的歌单」 -> 「创建新歌单」,输入歌单名称和描述,然后从搜索页面添加歌曲到歌单。下次可以直接播放整个歌单。

可选:查看历史 点击 「播放历史」,可以看到最近播放的 50 首歌曲,点击即可重新播放。


技术栈更新#

音乐功能基于以下技术实现:

前端:

  • Vue 3 Composition API (script setup)
  • Pinia 状态管理 (音乐 store)
  • HTML5 Audio API
  • Naive UI (NModal, NDrawer, NBadge 等组件)
  • TypeScript 严格类型检查

后端集成:

  • 网易云音乐 API 代理
  • Cookie 池管理与轮换
  • 播放历史持久化存储
  • 歌单 CRUD 接口

优化细节:

  • 音频预加载与缓冲处理
  • 歌词实时滚动算法
  • 播放模式状态机
  • 全局播放器生命周期管理

已知问题 & 后续计划#

已知问题:

  • 部分歌曲因版权原因无法播放(网易云 API 限制)
  • 歌词可能存在时间轴不准的情况(取决于网易云数据质量)

后续计划:

  • 支持歌单分享功能
  • 添加歌词翻译显示
  • 引入歌手/专辑详情页
  • 支持本地上传音乐
  • 添加音乐可视化效果

结语#

Setu Cloud 从一个简单的图片 API 服务,逐渐演变成了一个多功能的娱乐控制台。音乐功能的加入,让开发者在管理 API 的同时也能享受片刻的放松。

这次更新耗时约一周,从需求设计到功能实现,再到 UI 打磨,每一个细节都经过了反复推敲。虽然”不务正业”,但确实提升了使用控制台的幸福感😊

欢迎大家登录体验,如果有任何建议或遇到 BUG,欢迎通过邮件或 QQ 反馈!

说个题外话,一边写代码一边循环播放《昔涟》真的很上头,崩铁的音乐制作真的绝了!推荐大家搜索试试这首歌~


相关链接:

这篇文章是否对你有帮助?

发现错误或想要改进这篇文章?

在 GitHub 上编辑此页
Setu Cloud v2.5 音乐功能重磅上线!
https://blog.yukiryou.top/posts/setu_cloud_v25/
作者
雪涼
发布于
2025-12-27
许可协议
CC BY-NC-SA 4.0