# NetSpeed-Dynamic
**Repository Path**: chen2269/NetSpeed-Dynamic
## Basic Information
- **Project Name**: NetSpeed-Dynamic
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-07-16
- **Last Updated**: 2026-07-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# NetSpeed Dynamic Pro (NSD)

**NetSpeed Dynamic Pro** —— 专为 Windows 而生的灵动岛
[](https://tauri.app)
[](https://rust-lang.org)
[](https://vuejs.org)
[](https://www.typescriptlang.org)
[](https://vite.dev)
[](https://echarts.apache.org)




---
这是一个基于 **Tauri 2 + Rust + Vue 3** 的桌面灵动岛组件,灵动岛悬浮窗实时显示网络速度,支持多平台音乐控制、流量统计、系统通知接收、系统事件监控,支持置于任务栏左下角。
## 功能
### 网速监控
- **实时网速**:每秒刷新上传/下载速度,自动切换单位
- **灵动岛悬浮窗**:支持拖拽移动、弹簧动画进出场
- **网络状态指示灯**:绿色(正常)/黄色(高延迟)/红色(断网)
- **流量高亮**:超过 1MB/s 时箭头自动高亮提醒
- **速度趋势图表**:控制台内置迷你折线图展示最近 15 秒下载速度
- **本地流量统计**:自动记录每日上传/下载数据,支持柱状图/折线图可视化
- **本月流量统计**:实时计算本月累计使用流量
### 多平台音乐控制
- **播放控制**:上一首 / 播放暂停 / 下一首(通过系统 SMTC API)
- **多平台支持**:网易云音乐、Spotify、Apple Music、QQ音乐、酷狗音乐、Echo Music、洛雪音乐
- **歌曲信息**:实时显示歌名、歌手和专辑封面
- **封面旋转**:播放时封面自动旋转,暂停时停止
- **多源封面获取**:优先从系统 SMTC 提取本地高清封面,降级至网易云、Deezer、Apple Music,SVG 渐变兜底
- **封面缓存**:智能缓存最近 50 首歌曲封面,提升响应速度
- **彩虹流光边框**:8 色渐变旋转边框,可独立开关
- **音频频谱可视化**:实时捕获系统音频输出,通过 FFT 变换生成 5 频段律动频谱,跟随音乐节奏跳动
- **歌名滚动**:长歌名自动水平滚动,展开后切换为双行显示
- **智能交互**:悬停显示控件,离开后自动切换为歌曲信息,1秒自动收缩
- **弹性按压展开**:点击音乐岛触发弹簧动画展开,显示完整控制按钮
### 系统消息通知
- **实时捕获**:接收系统 Toast 通知并在灵动岛展示
- **动态扩展**:收到通知时灵动岛自动放大展示应用图标、标题和内容
- **智能过滤**:自动过滤微信通知避免干扰
- **点击唤醒**:点击通知区域直接打开对应应用(支持 QQ、微信、钉钉等)
- **静默消息模式**:平时自动隐藏,收到消息后才弹出
### 系统事件监控
- **音量变化检测**:实时监听系统音量变化,自动弹出通知
- **电源状态监控**:检测电源插入/拔出状态,显示充电状态图标
- **低电量警告**:电量低于 20% 时自动触发红色警告通知
- **专用SVG图标**:充电/低电量/锁定/解锁各有独立图标
- **通知队列优先级**:系统通知优先于操作通知,消息通知最高优先级
### 专注番茄钟 (Live Active)
- **自定义时长**:支持时:分:秒三级自定义设置,默认 25 分钟
- **启停控制**:启动/暂停/重置完整生命周期管理
- **灵动岛显示**:倒计时实时显示在灵动岛上,支持展开查看详细时间
- **时间记忆化**:自定义时长永久保存到本地存储
- **完成通知**:倒计时结束自动弹出完成提示,并广播重置信号
### 实时活动枢纽 (LiveActive)
- **画廊式布局**:横向滚动卡片设计,平滑滚动过渡
- **卡片展开**:点击卡片自动展开详情面板,居中显示
- **进度指示器**:滚动边缘渐变遮罩提示可滚动方向
- **模块扩展**:预留系统动态感知、打印机队列等模块接口
### 设置与系统集成
- **主题切换**:浅色/深色/跟随系统
- **灵动岛颜色**:支持黑色/白色背景色调切换
- **透明度调节**:0%~100% 实时同步至悬浮窗
- **开机自启**:跟随系统启动,静默启动时主窗口隐藏
- **系统托盘**:左键唤起控制台,右键强制退出
- **置于任务栏**:锁定至屏幕左下角,禁止拖拽,自动置顶
- **位置锁定**:右键菜单可锁定/解锁灵动岛位置
- **全屏自动隐藏**:游戏/视频全屏时自动隐藏灵动岛,退出全屏后自动恢复
- **全屏游戏避让**:自动检测全屏窗口,避免抢占焦点
- **检查更新**:静默检测新版本并提示下载,支持 10 秒超时保护
- **实时活动面板**:LiveActive 画廊式设置界面,统一管理番茄钟等功能模块
## 技术栈
| 层级 | 技术 |
|------|------|
| 桌面框架 | Tauri 2 (Rust) |
| 前端框架 | Vue 3 + TypeScript |
| 构建工具 | Vite 6 |
| 路由 | Vue Router 5 |
| 图表 | ECharts 6 |
| 图标 | Lucide Vue Next |
| 网络监控 | sysinfo (Rust) |
| 异步运行时 | Tokio (Rust) |
| HTTP 客户端 | reqwest (Rust) |
| 媒体控制 | Windows SMTC API |
| 音频捕获 | cpal (Rust) |
| 频谱分析 | rustfft (Rust) |
| 系统事件 | Windows COM API |
| Windows API | windows-sys + winapi |
| 本地存储 | localStorage |
## 项目结构
```
NetSpeed-Dynamic/
├── src/ # 前端源码
│ ├── main.ts # 应用入口
│ ├── router/index.ts # 路由配置
│ ├── views/
│ │ ├── MainPanel.vue # 主控制台(设置、统计、音乐平台切换)
│ │ ├── WidgetIsland.vue # 灵动岛悬浮窗(网速、音乐、消息、频谱、实时活动)
│ │ └── LiveActive.vue # 实时活动枢纽(画廊式控制面板,实时活动管理)
│ └── assets/ # 静态资源(图标、截图)
├── src-tauri/ # Tauri 后端
│ ├── src/
│ │ ├── main.rs # Rust 入口
│ │ ├── lib.rs # 核心逻辑(网速监控、窗口动画、全屏检测)
│ │ ├── audio_spectrum.rs # 音频频谱分析(FFT)
│ │ ├── music_controller.rs # 音乐控制器(SMTC API)
│ │ ├── notification.rs # 系统通知捕获
│ │ └── system_events.rs # 系统事件监控(音量、电源)
│ ├── Cargo.toml # Rust 依赖
│ └── tauri.conf.json # Tauri 配置
└── package.json # 前端依赖
```
## 开发环境
### 前置依赖
- Node.js >= 18
- Rust >= 1.70
- Tauri 2 CLI
### 安装与运行
```bash
git clone https://github.com/GEORGEWWWU/NetSpeed-Dynamic.git
cd NetSpeed-Dynamic
npm install
npm run tauri dev
```
### 构建发布
```bash
npm run tauri build
```
产物位于 `src-tauri/target/release/bundle/`。
## 使用方式
1. 启动后显示主控制台,点击系统托盘可随时唤起
2. 开启 Widget 开关,屏幕顶部出现灵动岛悬浮窗
3. 左键拖拽移动,右键菜单可重置位置、锁定位置或关闭
4. 在"灵动岛设置"中选择音乐平台、开启音乐控制、消息通知
5. 在"灵动岛设置"中切换灵动岛颜色(亮色/暗色)和开启静默消息模式
6. 控制台右侧可切换常规设置与数据统计面板,支持柱状图/折线图切换
7. 点击"LiveActive 设置"进入实时活动枢纽,配置专注番茄钟等功能
8. 番茄钟启动后,灵动岛显示倒计时,支持暂停、重置操作
9. 开启"全屏自动隐藏",游戏/视频全屏时自动隐藏灵动岛
## 开源协议
MIT License
Copyright (c) 2026 Ryen (GEORGEWU)
## 捐赠
如果 NSD 对你有帮助,欢迎请作者喝杯咖啡!
| 方式 | 信息 |
|------|------|
| 微信支付 | [微信](./src/assets/wechat-pay.png) |
| 支付宝 | [支付宝](./src/assets/alipay.jpg) |
| GitHub Sponsors | [前往支持](https://github.com/sponsors/GEORGEWWWU) |
---
> 感谢每一位支持者!