# Wasapi_player **Repository Path**: zfz2005/wasapi_ ## Basic Information - **Project Name**: Wasapi_player - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-16 - **Last Updated**: 2026-07-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FLAC 位完美播放器 v2.4 基于 **Tauri v2 + React + WASAPI COM** 的 Hi-Res 桌面音乐播放器,网易云音乐风格 UI。 原生 WASAPI 独占/共享模式直驱声卡,位完美 (bit-perfect) 播放。前端 React + Tailwind CSS,后端 Rust FFI 调用 C 音频引擎(ffmpeg 解码 + WASAPI 直接 COM 输出),支持 MSI/NSIS 安装包。 最高测试通过 **192kHz / 24bit** WASAPI 输出。 --- ## 功能 | 功能 | 说明 | |------|------| | 🎵 **多格式** | FLAC / WAV / MP3 / ALAC / AIFF / DSD / OGG / M4A / WMA / APE | | 🔊 **WASAPI** | 独占模式位完美 + 共享模式,运行时一键切换 | | 📚 **音乐库** | 文件夹扫描、文件添加、自动去重、持久化保存 | | ❤️ **收藏 + 歌单** | 我的喜欢、自定义歌单、添加到歌单 | | 🔍 **全局搜索** | 按歌曲/艺术家/专辑实时过滤,专辑/艺术家页面同样生效 | | 📀 **专辑/艺术家** | 侧边栏入口 → 独立网格列表(封面常驻)→ 详情页(Hero + 百度百科描述) | | 🎛️ **参数 EQ** | 11 段 ISO 标准频率 Parametric EQ,实时 DSP(WASAPI 回调内零延迟) | | 📊 **频谱可视化** | 128 段高精度 FFT 频谱柱状图(1024 点 Hann 窗 + 50% 重叠) | | 🎨 **EQ 曲线** | 平滑 Catmull-Rom 贝塞尔波浪线 + 节点拖拽编辑 | | 🔇 **EQ 关闭位完美** | EQ OFF 时完全旁路 DSP → PCM 直通声卡,零转换损耗 | | 🔀 **播放模式** | 顺序播放 / 随机播放 / 单曲循环 | | ⏯️ **全局队列** | 切歌/自动播放始终按播放时的列表顺序,切页面不丢失 | | 📝 **LRC 歌词** | 内嵌解析 + 网易云多版本搜索 + LRC 文件加载 + 常驻重置按钮 + 全屏沉浸 | | 🎤 **全屏歌词** | 封面点击进入、居中定位、2秒无操作回中、点击跳转 | | 🖼️ **封面显示** | 懒加载全部歌曲封面 + 专辑/艺术家封面(持久化缓存) | | 🏷️ **MQA 标识** | MQA 编码文件自动检测,显示 `MQA` 琥珀色徽章 | | ✏️ **元数据编辑** | 每首歌 ⋯ 菜单 → 编辑标题/艺术家/专辑,支持网易云搜索自动匹配 | | 🔗 **网易云 + 百度百科** | 封面/发行信息(网易云)+ 简介描述(百度百科),混合 API | | 📀 **封面持久化** | 手动刷新获取封面 → 自动保存 → 重启应用秒加载 | | 🖥️ **设备选择** | WASAPI 设备枚举、偏好保存 | | 📦 **安装包** | `tauri build` → MSI/NSIS `.exe` 安装包 | | 📁 **便携数据** | 所有数据(媒体库/收藏/歌单/歌词/封面)存于安装目录 `data/` | --- ## 更新日志 ### v2.4 (2026-07-21) - 📁 **便携数据存储**:所有应用数据(媒体库、收藏、歌单、歌词映射、封面缓存)从系统 `AppData` 迁移到安装目录 `data/` 子文件夹,卸载即彻底清理 - 🐛 **修复**:`beforeBuildCommand` 双重路径(`ui/ui`)导致 `npm` 找不到 `package.json`,构建失败 - 🎨 **图标**:ICO 内 7 尺寸帧全部使用 PNG 压缩,透明通道正确渲染 - 🗑️ **清理**:移除未使用的 `dirs` 依赖 ### v2.3 (2026-07-21) - 🐛 **修复**:5 个歌词命令未注册 → 网易云搜索、LRC 持久化完全失效 - 🐛 **修复**:网易云歌词 API 404 → 端点更正为经典 `/api/song/lyric` 接口 - 🐛 **修复**:LRC 解析器不支持 `[mm:ss:xx]` 格式(`:` 分隔符) - ✨ **新增**:网易云歌词多版本选择(原文 / 翻译),用户自由选择 - 📋 **新增**:歌词 API 详细失败日志(HTTP 状态码 / 错误码 / 无歌词原因) - 🎨 **调整**:移除手动编辑按钮,简化操作流程 - 🎨 **调整**:内嵌歌词重置按钮常驻显示 ### v2.2 (2026-07-20) - 🏷️ **新增**:MQA 文件自动检测与显示(琥珀色徽章) - ✏️ **新增**:歌曲元数据编辑器(标题/艺术家/专辑/封面) - 🔍 **新增**:网易云歌名搜索 → 多结果匹配 → 一键应用 - 📀 **新增**:专辑/艺术家封面持久化(跨会话缓存) - 🔇 **优化**:EQ 关闭时 WASAPI 完全旁路,位完美直通 - 🎯 **修复**:播放队列跨页面持久化(搜索不覆盖队列) - 🎯 **修复**:Biquad a1 系数符号错误 → 爆音/滋滋声根因 - ⚡ **优化**:解码线程 ABOVE_NORMAL 优先级 + 环形缓冲 4秒 - 🎨 **UI**:歌曲行多功能键(⋯)常驻显示 - 🎨 **UI**:所有子页面添加「返回音乐库」按钮 ### v2.1 (2026-07-20) - 🎛️ 11 段 Parametric EQ(Peaking / Low Shelf / High Shelf) - 📊 128 段 FFT 实时频谱可视化 - 🎨 EQ 频响平滑贝塞尔曲线 + 节点拖拽 - 📀 专辑/艺术家独立网格列表 + 详情页面 - 🔍 搜索支持专辑/艺术家页面 ### v2.0.1 (2026-07-17) - 🐛 双击歌曲 / 上/下曲切换后不自动播放 - 🐛 歌曲播放完毕后不自动切歌 --- ## 架构 ``` ┌──────────────────────────────────────┐ │ Tauri v2 Shell │ │ ┌────────────────────────────────┐ │ │ │ React + TypeScript │ │ │ │ Vite + Tailwind + Lucide │ │ │ └───────────┬────────────────────┘ │ │ │ IPC │ │ ┌───────────▼────────────────────┐ │ │ │ Rust Backend │ │ │ │ Commands / State / FFI │ │ │ │ netease (网易云 + 百度百科) │ │ │ └───────────┬────────────────────┘ │ │ │ C FFI │ │ ┌───────────▼────────────────────┐ │ │ │ C Audio Engine │ │ │ │ player / wasapi_ex │ │ │ │ eq_biquad / dsp_chain │ │ │ │ spectrum (FFT) / probe │ │ │ └────────────────────────────────┘ │ └──────────────────────────────────────┘ ``` --- ## 环境 | 工具 | 版本 | |------|------| | Node.js | ≥ 18 | | Rust | ≥ 1.70 | | VS 2022 Build Tools | C++ 编译 | | Windows 10/11 | WebView2 | --- ## 开发 ```bash cd ui && npm install cd src-tauri && cargo tauri dev # 或双击 dev.bat ``` ## 构建 ```bash cd src-tauri && cargo tauri build # → MSI/NSIS 安装包 ``` --- ## License MIT