Mineradio v1.1.0 纯净安装版发布解析:默认视觉存档、3D 歌单架开关与后台性能策略
【免费下载链接】Mineradio-paused一款以电影镜头、粒子视觉和歌词舞台为核心的沉浸式音乐播放器。项目地址: https://gitcode.com/gh_mirrors/mi/Mineradio-paused
本文基于 docs/RELEASE_NOTES_v1.1.0.md 编写,并以当前开源仓库的源码、配置与测试为佐证。v1.1.0 是 Mineradio 一次重要的"纯净安装"发布:它不再基于旧打包产物构建,而是从可信源码重新出包,同时把「默认测试」视觉用户存档固化为新用户首次启动的默认体验,并为 3D 歌单架、后台策略与画质档位带来一批新开关和修复。读完本文,你将理解这次发布的版本安全基线、默认视觉参数的底层来源、3D 歌单架交互修复的原理,以及安装校验的完整流程。
一、发布背景:为什么是"纯净安装版"
Mineradio v1.1.0 的定位不是一次常规迭代,而是一次发布链路重建。根据 RELEASE_NOTES_v1.1.0.md 的说明,本次安装包从当前可信源码重新构建,旧dist、旧安装包、旧备份包和旧 packaged build 全部不作为本次发布来源。这意味着:
- 不存在"补丁叠加"式升级,所有文件都来自同一份可审计源码;
- 不提供从
v1.0.10到v1.1.0的软件内本地更新,也不提供快速补丁; - 本次 Release不上传
latest.yml,不会成为旧版本软件内更新通道的 latest,避免旧客户端被引导到不完整通道。
从仓库的 CHANGELOG.md 可以看到,这一决策与后续的安装器安全修复是一脉相承的:v1.1.1 进一步把安装器目标路径强制收敛到独立Mineradio文件夹、阻止非空非自有目录覆盖、并让卸载器只删除已知顶层文件(见 CHANGELOG.md 中v1.1.1条目)。因此 v1.1.0 实际上是 Mineradio 安装/更新安全基线重建的起点。
版本安全说明(原文档要点)
v1.0.10及更早旧安装包不再建议继续安装或传播,请先隔离旧.exe安装包;- 本次不提供软件内本地更新与快速补丁,需手动下载完整安装包;
- 下载文件为
Mineradio-1.1.0-Setup.exe与校验文件Mineradio-1.1.0-SHA256SUMS.txt; - 安装包暂未进行代码签名,Windows 可能显示安全提示。
二、默认视觉存档「默认测试」:首启体验从哪来
v1.1.0 最核心的产品变化,是把默认测试.json设为首次启动默认用户存档,同时让软件内默认视觉参数与这份快照完全一致。新用户第一次启动时,用户存档列表会自动预置「默认测试」,无需手动导入。
仓库中的实物证据
仓库根目录下保留着这份快照的 JSON 形态:public/default-user-fx-archive.json。它声明了type: "mineradio-user-fx-archive"、schema: 1,名为「默认测试」,并携带完整的snapshot对象。快照覆盖了视觉预设、歌词布局、粒子参数、3D 歌单架、桌面歌词、壁纸模式、声波地面(Sonic Ground)、性能与内存策略等 200 余项设置,例如:
{ "type": "mineradio-user-fx-archive", "schema": 1, "name": "默认测试", "snapshot": { "visualPresetSchema": "skull-preset-v2", "preset": 0, "cinemaShake": 0.5, "coverResolution": 1.55, "lyricGlowStrength": 0.28, "shelf": "side", "shelfShowPodcasts": false, "shelfMergeCollections": true, "shelfAngleY": -11, "performanceBackground": "release", "performanceQuality": "eco", "liveBackgroundKeep": false } }注意:release notes 记载 v1.1.0 发布时的歌单架侧向角度为-15,而当前仓库快照中该值为-11(后续版本已随交互调优演进)。阅读历史版本时,应以对应版本说明为准。
打包进运行时的机制
这份快照不只是静态文件,它还被直接打包进前端运行时。public/js/modules/00-state/05-packaged-fx-archive.js 中定义了PACKAGED_DEFAULT_USER_FX_ARCHIVE_NAME = '默认测试',并通过:
var PACKAGED_DEFAULT_FX_SNAPSHOT = Object.freeze(Object.assign({ visualPresetSchema: VISUAL_PRESET_SCHEMA }, fxDefaults));把运行时默认值fxDefaults直接作为首启快照。文件注释明确说明:这样"新加的设置项不会在两条默认路径之间静默漂移"。也就是说,「默认测试」存档与fxDefaults共用同一份数据源,任何后续新增的视觉参数都会同时进入默认存档,从机制上保证了首启体验与软件内默认参数的一致性。
同步脚本:防止存档与运行时脱节
仓库还提供了专门的同步工具 scripts/sync-current-fx-default-archive.js,它会:
- 读取 public/js/modules/00-state/04-fx-defaults.js 中的
fxDefaults对象; - 对比本地运行时的
current-fx-autosave.json,缺失或不一致的键会直接报错(Runtime defaults are not synchronized with the captured settings); - 校验通过后,把快照重新写成
public/default-user-fx-archive.json。
脚本默认以--dry-run模式运行并打印比对结果,加上--write才真正回写,且可用--source <path>指定运行时存档来源。这一脚本的存在印证了「默认测试」并不是一次性写死的数据,而是一套可维护、可重新生成的默认体验基线。
三、v1.1.0 默认视觉参数逐项解析
release notes 给出了 v1.1.0 的默认视觉参数清单,这些参数都能在当前仓库的 04-fx-defaults.js 与 default-user-fx-archive.json 中找到对应实现:
| 参数 | v1.1.0 默认值 | 对应字段 | 源码位置 |
|---|---|---|---|
| 视觉预设 | emily | preset: 0(emily 专辑封面) | 00-preset-archive-data.js |
| 封面粒子分辨率 | 1.55 | coverResolution: 1.55 | 04-fx-defaults.js |
| 电影镜头强度 | 0.5 | cinemaShake: 0.5 | 04-fx-defaults.js |
| 歌词发光 | 0.28 | lyricGlowStrength: 0.28 | 04-fx-defaults.js |
| 高亮色 | #fac900 | lyricHighlightColor归一化兜底值 | 04-visual-settings-persistence.js |
| 发光色 | #008aff | lyricGlowColor归一化兜底值 | 04-visual-settings-persistence.js |
| UI / Home / 视觉图标 | 白色 | uiAccentColor/homeAccentColor/visualIconColor等均为#ffffff | 04-fx-defaults.js |
| 3D 歌单架 | 静态常驻侧栏 | shelf: 'side' | 04-fx-defaults.js |
| 侧向角度 | -15(v1.1.0) | shelfAngleY | 04-fx-defaults.js |
| 播客歌单 | 默认关闭 | shelfShowPodcasts: false | 04-fx-defaults.js |
参数背后的实现细节
封面粒子分辨率不是直接决定粒子数量的原始数值,而是被换算成粒子网格:coverParticleGridForResolution()把1.55映射为Math.round(118 * 1.55)再取奇数网格(约 183×183),并对应选择 512 纹理(见 04-visual-settings-persistence.js)。normalizeCoverResolution会把用户输入钳制在0.75 ~ 1.55区间。
emily 预设在 00-preset-archive-data.js 的presetMeta中排在第一位,描述为"封面粒子 · 快速入场",是项目默认的播放态视觉。README 中也确认"播放后切换到 Emily / 默认播放态视觉,歌词舞台与粒子舞台同步工作"。
高亮色与发光色:当前fxDefaults中lyricHighlightColor为#fff0b8、lyricGlowColor为#9db8cf,但持久化层在归一化时仍以#fac900/#008aff作为兜底默认(见 04-visual-settings-persistence.js),与 v1.1.0 release notes 记载的默认色一致,说明这两个颜色在版本演进中作为色彩基线被保留了下来。
四、3D 歌单架:新开关与交互修复
新增两个内容开关
v1.1.0 为 3D 歌单架新增了「显示播客歌单」和「合并收藏歌单」两个开关,对应字段shelfShowPodcasts与shelfMergeCollections。从视觉控制台代码 09-console-workspace.js 可以看到它们在界面中的真实条目:
fxConsoleItem('t-shelfShowPodcasts', '显示播客歌单', '3D 播客'), fxConsoleItem('t-shelfMergeCollections', '合并收藏歌单', '我的歌单 收藏 连续滚动')shelfShowPodcasts: false:播客歌单默认关闭,避免播客内容挤占歌单架主视觉;shelfMergeCollections: true:「我的歌单」与「收藏歌单」默认合并成一条连续滚动列表,减少重复的架层切换。
交互修复:镜头绑定、触发区与遮挡
v1.1.0 修复了一组与 3D 歌单架详情页相关的交互问题,CHANGELOG 给出了更完整的描述(见 CHANGELOG.md 中v1.1.0条目):
- 动态/静态镜头绑定分流:静态详情页跟随封面粒子世界轴,动态详情页跟随镜头,不再互相混淆;
- 常驻触发区优化:常驻歌单架未命中时不长期挡歌词,只有命中卡片时才浮起到前景;
- 详情页完整性:详情页打开后保持更完整的页面显示与中心高亮行,修复被歌词或卡片遮挡、滚轮高亮不同步的问题。
这些修复对应的参数在 04-fx-defaults.js 中均有迹可循:shelfCameraMode: 'dynamic'控制镜头模式,shelfPresence: 'auto'控制常驻呈现,shelfDetailAngleY: -13、shelfDetailScale: 1.35等一组shelfDetail*参数则控制详情页的独立变换,说明详情页在实现上是拥有自己一套坐标变换参数的独立场景层。
歌词可读性修复
详情页选歌时歌词不再突然跳亮,详情页打开时歌词保持可读但降低发光层并保持在详情页下层,避免遮挡中心高亮行。这与默认快照中的lyricGlow/lyricPauseHold等歌词行为参数联动——发光强度lyricGlowStrength: 0.28本身就为详情页场景预留了视觉层级空间。
五、高级设置:后台策略与画质档位
v1.1.0 在高级设置中新增了后台策略和画质档位两个性能控制维度,直播后台保持开启后不再进入低占用暂停。
画质档位(performanceQuality)
取值与归一化逻辑位于 04-visual-settings-persistence.js:
function normalizePerformanceQuality(v) { var value = String(v || ''); return /^(eco|balanced|high|ultra)$/.test(value) ? value : fxDefaults.performanceQuality; }即四档:eco(低配)/balanced(中)/high(高)/ultra(超高),默认eco。渲染运行时 08-desktop-render-power.js 通过performanceQualityRank()把档位映射为 0~3 的秩用于分级降载(eco对应秩 0),并据此切换render-background-eco等渲染 class。
后台渲染策略(performanceBackground)
归一化逻辑支持三种模式(04-visual-settings-persistence.js):
function normalizePerformanceBackgroundMode(v, liveKeepFallback) { var value = String(v || ''); if (value === 'keep' || liveKeepFallback === true) return 'keep'; if (value === 'release') return 'release'; return 'auto'; }release:后台释放渲染资源(默认值,对应控制台条目"自动优化"之外的高效释放);keep:后台保持渲染——liveBackgroundKeep: true时强制走该分支,即"直播后台保持",最小化时继续渲染;auto:按可见性自动决策。
控制台中的用户可见文案来自 09-console-workspace.js:
{ key: 'performance', title: '性能与后台', hint: '画质档位、后台渲染和直播保持', items: [ fxConsoleItem('performance-quality-seg', '画质档位', '低配 中 高 超高 渲染质量'), fxConsoleItem('performance-background-seg', '后台渲染策略', '自动优化 保持运行 停止释放'), fxConsoleItem('t-liveBackgroundKeep', '直播后台保持', '最小化继续渲染'), ]}从渲染运行时看,isBackgroundReleaseMode()会进入释放帧率/缓存裁剪路径(trimRuntimeCaches(..., 'release-frame')),并在窗口重新可见/聚焦时通过recoverVisualsAfterBackground()恢复(08-desktop-render-power.js)。这解释了"直播后台保持开启后不会进入低占用暂停"的实现方式:liveBackgroundKeep直接覆盖后台策略判定。
六、关键修复清单与工程含义
1. 用户存档应用后切歌回退问题
修复"应用用户存档后切歌/跳歌回退到上一个视觉预设"。从持久化层看,存档应用路径会把存档中的preset写入当前播放态(04-visual-settings-persistence.js),并配合presetForSave的播放态判断(同文件 L715-L725),确保播放中应用存档后,切歌链路携带的是新预设而不是旧值。
2. 全屏 DIY 悬浮入口遮挡
视觉预设热键按钮不再被全屏 DIY 悬浮入口遮挡;视觉控制台隐藏按钮会跟随一起隐藏,不再残留孤立标记。这是纯 UI 层层级与显隐状态同步修复。
3. 依赖更新与更新安全
v1.1.0 更新了 Electron / electron-builder 依赖,修复已知高风险构建依赖告警。同时保留了更新下载失败时的安全停住逻辑:快速补丁失败后不再自动反复拉取完整安装包,完整安装包下载完成后也不再自动打开,需用户手动确认(见 CHANGELOG.mdv1.1.0条目)。这与项目"更新入口只打开浏览器下载页、客户端内不应用补丁"的分发哲学一致(见 README.md 更新机制说明)。
七、安装建议与校验流程
release notes 给出了 v1.1.0 的安装建议,完整步骤如下:
- 不要继续运行或转发旧安装包(尤其
v1.0.10及更早版本); - 先卸载旧版 Mineradio;
- 隔离旧
.exe安装包和旧打包目录; - 下载并安装
Mineradio-1.1.0-Setup.exe; - 安装后如需对照校验,使用 Release 中提供的SHA256文件(
Mineradio-1.1.0-SHA256SUMS.txt)。
当前安装包暂未进行代码签名,Windows 可能显示安全提示——这是未签名 Electron 安装包的常见现象,应从可信来源下载并核对校验值。
仓库中与安装/更新主题相关的补充资料包括:
- docs/INSTALLER_STYLE.md:安装器界面与行为风格说明;
- docs/UPDATE_DELIVERY.md:更新分发机制说明;
- electron-builder.internal-beta.json:electron-builder 构建配置;
- docs/RELEASE_NOTES_v2.2.0.md:后续 2.2.0 版本的发布说明(当前仓库为长期停更状态,历史版本以 2.2.0 为最终正式版)。
八、从 v1.1.0 到当前仓库:如何继续阅读
v1.1.0 之后,仓库经历了 v1.1.1(安装器安全修复)、v2.x 系列迭代,最终停在 v2.2.0 并进入长期停更(见 README.md 项目状态说明)。如果你想深入验证本文涉及的机制,可以按以下路径阅读:
- 默认视觉基线:public/default-user-fx-archive.json → 05-packaged-fx-archive.js → 04-fx-defaults.js;
- 参数归一化与存档应用:04-visual-settings-persistence.js;
- 渲染性能分级:08-desktop-render-power.js 与 11-system-memory-controls.js;
- 控制台 UI 条目:09-console-workspace.js;
- 视觉预设元数据:00-preset-archive-data.js;
- 存档同步脚本:scripts/sync-current-fx-default-archive.js(支持
--dry-run/--write/--source)。
在开发环境验证这些机制时,可参考 README.md 的开发运行方式:npm install后npm start启动桌面端,npm run build:win生成 Windows NSIS 安装包(产物位于dist/)。
【免费下载链接】Mineradio-paused一款以电影镜头、粒子视觉和歌词舞台为核心的沉浸式音乐播放器。项目地址: https://gitcode.com/gh_mirrors/mi/Mineradio-paused
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考