### 新功能 - 流式播放:边下载边播放,缓冲 64KB 后即刻开始,无需等待完整下载 - 本地音乐页面:支持浏览、播放本地歌曲,横向菜单含「从磁盘删除」 - 下载系统:支持下载歌曲到自定义路径,保存完整元数据(封面/专辑/时长) - 封面补全:本地音乐缺少封面时自动从网易云 API 获取 - 更新信息:接入 Gitea Releases API,查看最新版更新日志 ### 修复 - 修复私人漫游播完一首歌后跳三首的问题(双重触发:audio-ended + startTick) - 修复全屏漫游抽屉和漫游页面无封面歌曲显示破损图片 - 修复 PlayerBar 无封面歌曲显示破损图片 - 修复下载路径修改后不生效(Rust serde camelCase 映射) - 修复本地音乐始终只显示默认路径歌曲 - 修复下载完成提示弹出 4 次 - 修复播放网络歌曲时进度条先走但无声音(audio-started 事件同步) ### 优化 - PlayerBar 下载状态:未下载显示下载按钮,下载中显示进度,已下载不显示 - audio.rs 新增 manual_stop 标志防止 stop_audio 触发虚假 audio-ended - player.ts 新增 waitForAudioStart() 确保 playing 状态与实际播放同步 - 切歌/停止时立即清除 tickInterval 防止重复触发 next()
Nekosonic
一款轻量的跨平台的音乐播放器,支持Windows/Linux系统,音源主要源自的网易云音乐。
✨ 特性
- 🔴 网易云账号登录(扫码)
- 🎵 多音质播放(标准 / 较高 / 极高 / 无损 / Hi-Res)
- 📻 私人漫游,沉浸式全屏歌词体验
- ❤️ 一键喜欢 / 取消喜欢
- 📋 歌单管理,收藏 / 取消收藏歌单
- 📅 每日推荐歌曲
- 🕐 本地播放历史记录
- 🔍 关键词搜索歌曲
- 🎤 实时滚动歌词
- 🌚 Light / Dark Mode 主题切换
- 🛠 更多特性添加中
📦️ 安装
访问本项目的 Releases 页面下载安装包。
💻 配置开发环境
# 安装前端依赖
npm install
# 启动开发服务器
npm run tauri dev
# 构建发布
npm run tauri build
环境要求
- Node.js >= 18
- Rust >= 1.70
- Tauri CLI 2
🛠 技术栈
| 层级 | 技术 |
|---|---|
| 桌面框架 | Tauri 2 |
| 前端 | Vue 3 + TypeScript |
| 样式 | Tailwind CSS v4 + CSS 变量主题系统 |
| 状态管理 | Pinia |
| 路由 | Vue Router 4 |
| 音频播放 | rodio (Rust) |
| 网易云 API | ncm-api-rs |
| 构建工具 | Vite 6 |
☑️ Todo
- MV 播放
- 音乐云盘
- 评论系统
- 下载功能
- 自定义全局快捷键
- 歌词翻译
- 更多主题
欢迎提 Issue 和 Pull request。
📜 开源许可
本项目仅供个人学习研究使用,禁止用于商业及非法用途。
基于 MIT license 许可进行开源。
致谢
- ncm-api-rs — 网易云音乐 API 的 Rust 封装
- Tauri — 跨平台桌面应用框架
- Vue.js — 渐进式 JavaScript 框架
- Tailwind CSS — 实用优先的 CSS 框架
- rodio — Rust 音频播放库
Description
Nekosonic
Latest
Languages
Vue
55.5%
Rust
27.6%
TypeScript
14.7%
CSS
2%
HTML
0.2%