律动壁纸通过 Web Audio API 捕获系统音频,由 Three.js 舞台效果 渲染音频响应画面,实现桌面律动背景。
实现目录:src/renderer/windows/RhythmWallpaperWindow/(窗口、rhythmAudio、effects/three)。
系统音频 → Web Audio API → rhythmAudio.getFrame() → Three 舞台效果 → 桌面律动壁纸
- 窗口:
RhythmWallpaperWindow(透明、点击穿透、桌面层级) - 音频:
utils/rhythmAudio.js,虚拟声卡优先(VB-Audio、BlackHole、立体声混音等) - 效果:
effects/three/stages/ThreeStage*.js,基类StageEffectBase→ThreeStageBase - 配置迁移:
utils/resolveRhythmEffect.js(旧 Leafer / 已删效果名映射到当前 Three 效果)
| 配置值 | 说明 |
|---|---|
ThreeStageBars |
演唱会柱 + 追光(默认) |
ThreeStageWall |
霓虹墙矩阵 |
ThreeStageGrid |
地柱网格 |
ThreeStageTexturedSphere |
纹理球体 |
选项与默认值见 src/common/publicData.js 的 rhythmEffectOptions、rhythmEffect。
| 目录 | 职责 |
|---|---|
core/ |
频谱映射、律动驱动、舞台基类 |
wall/ |
墙面矩阵、地面光晕 |
floorGrid/ |
地板柱阵 |
sphere/ |
纹理球 |
room/ |
霓虹盒房间壳体 |
shaders/ |
GLSL(球体、调色板) |
共享:stageColorTheme.js、StageRoomBox.js、stageLayoutProfile.js。
- 效果类型、宽高比例、配色、动画曲线、密度、位置、采样范围等(设置页与
settingData同步)
- Leafer 2D 及全部
Leafer*效果名 → 映射为ThreeStageBars - 实验性 Three(
ThreeBar、ThreeWave等)、泳池、线框地形(ThreeStageMeshGrid/ThreeStageRoomMeshGrid)→ 见resolveRhythmEffect.js
- Windows:
koffi设置桌面级窗口;可配合纯色动态壁纸 - macOS:
desktop类型窗口、全工作区可见 - Linux:标准透明窗口(依赖窗口管理器)
更细的窗口与进程说明见 docs/renderer_process.md 中「律动壁纸窗口」一节。