ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Mineradio 2.2.0 沉浸式音乐播放器技术指南:Electron 架构、NSIS 构建与更新分发机制解析

Mineradio 2.2.0 沉浸式音乐播放器技术指南:Electron 架构、NSIS 构建与更新分发机制解析 桌面应用音视频【免费下载链接】Mineradio-paused一款以电影镜头、粒子视觉和歌词舞台为核心的沉浸式音乐播放器。项目地址https://gitcode.com/gh_mirrors/mi/Mineradio-paused点击查看免费下载Mineradio 是一款以电影镜头、粒子视觉和歌词舞台为核心的 Windows 桌面沉浸式音乐播放器本指南基于仓库 README.md 及 package.json、desktop/main.js、server.js 等源码系统讲解其功能全景、安装与构建流程、更新分发链路以及第三方音乐平台接入边界。读者读完可以掌握从下载安装、源码构建到理解其更新检测与镜像线路机制、以及数据隐私边界在内的完整实战方案。项目定位与当前状态Mineradio 将搜索播放、歌词舞台、粒子视觉、3D 歌单架和完整桌面模式组合成一个更接近现场感的私人音乐空间。项目当前处于长期停更状态当前版本2.2.0仓库保留公开源码、历史版本和下载说明方便个人玩家 Fork、建立分支或制作二创版本。README 明确说明感兴趣的个人玩家可随意使用本项目进行创作也可以自行修改和修复 bug。核心特性全景README 归纳的核心能力可直接与 public/js/modules 目录的模块化结构相互印证首页信息聚合每日推荐、平台推荐、继续听、听歌画像和我的歌单入口对应05-playback/03a-home-dashboard.js、05-playback/03-home-discover-weather.js等模块。完整桌面模式保留播放器、主页、歌单和桌面交互由 desktop/full-desktop-mode-runtime.js 驱动可在桌面上嵌入视觉内容。本地视觉内容支持本地 MP4 与 Wallpaper Engine 视觉内容对应 desktop/local-music-library.js、desktop/wallpaper-engine-library.js。节奏驱动的视觉系统播放后切换到 Emily / 默认播放态视觉歌词舞台与粒子舞台同步工作面向长播客和 DJ 曲目还有专属视觉模式对应 dj-analyzer.js 与03-beat/系列模块。歌词舞台自定义歌词、歌词位置与视觉控制对应02-visual/与06-lyrics/系列模块。自定义专辑封面上传与裁剪对应05-playback/01-cover-custom-map.js。3D 歌单架右键唤起支持歌单队列浏览对应04-shelf/系列模块。多平台音乐接入网易云音乐账号、搜索、歌单、播客等体验接入QQ 音乐搜索、登录态与音源补充接入由 server.js 与 kugou-api.js、qq-vip-api.js、spotify-api.js 等实现。更新检测GitHub Releases 更新检测与下载入口详见下文「更新分发机制」。默认视觉存档首次启动内置「默认测试」视觉用户存档软件内默认视觉参数与该存档一致对应 public/default-user-fx-archive.json。从源码结构看渲染层由 public/index-loader.js 按编号顺序加载00-state到11-main-loop等模块视觉、节拍、播放、歌词、特效、账号、外壳等能力均以模块化方式组织便于二创时按需裁剪或替换。获取与安装 Windows 安装包下载入口与安装包选择README 提供了两条网盘线路作为本次版本的下载入口并强调「本页、发布公告和软件更新入口使用相同的两条新链接旧分享地址不再作为本次版本的下载入口」下载入口推荐人群说明夸克盘夸克用户直接下载Mineradio-2.2.0-Setup.exe百度云百度网盘用户提取码SJHP安装时只需下载并运行Mineradio-2.2.0-Setup.exe不要把.blockmap、latest.yml或win-unpacked当成正式安装包。docs/update/latest.yml仅记录版本号与发布时间见 docs/update/latest.yml不是安装载体win-unpacked是构建中间产物目录不作为正式分发物。正式分发以 NSIS 安装包为准安装包会创建桌面快捷方式。已经安装过旧版本的用户可直接运行Mineradio-2.2.0-Setup.exe完成更新。下载或安装被拦截怎么办小众 Electron 桌面软件、未签名安装包有时会被浏览器、Windows Defender 或 SmartScreen 提示风险。README 给出的处理流程如下浏览器下载栏提示风险打开下载列表点该下载右侧的...三个点选择保留/仍要保留/显示更多后继续保留。Windows SmartScreen 蓝色拦截窗口点更多信息再点仍要运行。杀毒软件明确报毒/隔离不要强行运行删除该文件后重新从公告网盘入口下载仍然异常请带截图反馈给作者。关键前提是确认安装包来自公告入口且文件名确为Mineradio-2.2.0-Setup.exe。package.json中的nsis.artifactName配置为Mineradio-${version}-Setup.${ext}正好产出该命名。从源码构建与开发运行三条核心命令README 给出的开发运行命令如下npm install npm start npm run build:win对应 package.json 中的 scripts 配置scripts: { start: electron ., build:win: electron-builder --win nsis, build:win:dir: electron-builder --win dir, build:win:internal-beta: electron-builder --config electron-builder.internal-beta.json --win nsis --publish never }npm start以 Electron 直接启动桌面版主进程入口为desktop/main.jspackage.json中main: desktop/main.js。npm run build:win调用 electron-builder 生成 Windows NSIS 安装包产物位于dist/。npm run build:win:dir仅生成未打包目录即win-unpacked供开发调试不作为正式分发物。npm run build:win:internal-beta使用独立配置文件electron-builder.internal-beta.json生成内部测试安装包。electron-builder 关键配置package.json的build字段决定了打包行为appId: com.mineradio.desktopproductName: Mineradio。directories.output: dist。打包文件集合包含desktop/**/*、public/**/*并显式仅保留public/index.html排除public/index.*.html、cuefield/**/*、server.js、*-api.js、qishui-auth-v6.js、qishui-qr-login.js、qishui-auth-v6/**/*、qishui-audio-decryptor/**/*、dj-analyzer.js等可见桌面端与本地服务端都随安装包分发。asar: false以明文目录方式打包方便个人玩家研究源码。win.target为nsis且arch: [x64]signAndEditExecutable: false未签名这也是安全软件提示风险的直接原因。NSIS 选项oneClick: false、perMachine: false、createDesktopShortcut: true、createStartMenuShortcut: true、shortcutName: Mineradio并自定义安装器图标与侧边栏位图。README 说明「桌面版入口由 Electron 主进程加载本地服务」与源码一致desktop/main.js 会启动一个绑定127.0.0.1的本地 HTTP 服务server.js 中PORT process.env.PORT || 3000并通过多级启动看门狗服务就绪检测、HTTP 探测、导航超时确保窗口正常加载。更新分发机制深度解析总体策略检测在客户端下载在浏览器README 明确指出Mineradio 会请求 GitHub Releases latest 检测新版本远端版本高于本地版本时应用内更新入口会展示 Release 内容并通过系统浏览器打开可选网盘线路。即使 Release 附带完整安装包2.0.3客户端也不会读取、下载、缓存或应用该附件与补丁——即不采用 electron-updater 式的自动下载安装而是「客户端只检测、浏览器完成下载」的轻量分发模型。这一设计在 server.js 的更新检测实现中体现得很完整fetchLatestUpdateInfo()优先请求https://api.github.com/repos/{owner}/{repo}/releases/latest带 8.5 秒超时与User-Agent。主接口失败时降级到fetchLatestYmlUpdateInfo()请求releases/latest/download/latest.yml并解析version与releaseDateyamlScalar解析。仍失败则返回localUpdateFallback()此时updateAvailable: false不误报新版本。Release 正文通过extractReleaseDownloadPages()提取!-- mineradio-download-page: 标签|https://... --隐藏标记与 docs/RELEASE_NOTES_v2.2.0.md 中的写法一致以及「夸克盘/百度云/网盘」等可见行extractReleaseNotes()取正文前四条说明作为更新摘要过滤掉链接、下载行和过长的行。版本比较使用compareVersions()先剥离v前缀与、-后缀再按数字段比较。镜像线路与国内加速package.json的mineradio.update字段配置了更新源与镜像mineradio: { update: { provider: github, owner: XxHuberrr, repo: Mineradio, preview: false, preferMirrors: true, mirrors: [ https://gh.llkk.cc/, https://ghfast.top/, https://gh-proxy.com/ ] } }server.js 的readUpdateConfig()会读取该字段并叠加环境变量覆盖MINERADIO_UPDATE_REPOSITORY、MINERADIO_UPDATE_OWNER、MINERADIO_UPDATE_REPO、MINERADIO_UPDATE_MIRRORS等镜像最多保留 6 条uniqueDownloadCandidates()按preferMirrors决定镜像线路与 GitHub 直连的排列顺序并用buildMirrorUrl()拼接代理前缀支持{encodedUrl}/{url}占位符模板。用本地 manifest 模拟线上 ReleaseREADME 给出的本地验证方式是设置环境变量MINERADIO_UPDATE_MANIFEST指向一个本地 manifest JSON 或 HTTP 地址来模拟线上 Release。源码中该变量同时支持MINERADIO_UPDATE_MANIFEST_URL与MINERADIO_UPDATE_MANIFEST_FILE别名见 server.js 的readUpdateConfig()。readUpdateManifest()对 HTTP 地址执行fetch对本地路径直接JSON.parse读取normalizeManifestUpdateInfo()会归一化latestVersion、release.downloadPages、notes等字段updateAvailable由compareVersions得出。发布侧约定docs/UPDATE_DELIVERY.md 补充了发布侧约束每次正式发布必须同时提供完整安装包和latest.yml版本说明只发布安装包会使旧客户端在 GitHub API 访问失败时无法通过备用线路发现更新docs/update/latest.yml只记录version与releaseDate不填写files、path、url、sha512等下载字段且 blockmap、补丁和校验文本不作为 Release 附件。当前仓库中的 docs/update/latest.yml 正是这一约定的实例version: 2.2.0 releaseDate: 2026-09-07T03:56:08.000Z2.1.0 旧客户端的入口限制对于已安装的 2.1.0 旧版README 与 docs/UPDATE_DELIVERY.md 说明了其行为边界启动约 9 秒后检查一次失败后没有自动重试检测成功后仅显示右上角更新箭头不会自动弹公告全屏、沉浸和桌面壁纸模式会隐藏该箭头所在的标题栏打开更新面板不会重新发起检查。排查时先从托盘彻底退出并重新打开软件切回普通窗口等待约 30 秒后查看右上角更新箭头仍未出现入口时直接从公告网盘链接获取完整安装包。这些频率、弹窗和入口限制属于已安装旧客户端的行为不能通过修改 Release 正文远程改变。第三方音乐平台接入边界README 对第三方平台接入做了明确声明Minereradio 不是网易云音乐、QQ 音乐或腾讯音乐娱乐集团的官方客户端也不隶属于任何音乐平台第三方平台接入仅用于个人学习、本地客户端体验和用户自有账号的播放辅助请遵守对应平台的用户协议、版权规则和会员权益规则项目不会提供绕过付费、绕过会员、破解音质或重新分发音乐内容的能力。从 server.js 源码看平台接入以「用户自有账号」为前提网易云使用NeteaseCloudMusicApi提供搜索、歌曲 URL、扫码登录、歌单、播客等能力Cookie 持久化到本地.cookie可用COOKIE_FILE环境变量覆盖QQ 音乐、酷狗、汽水、Spotify 分别有独立的 Cookie/Token 存储与登录分区desktop/main.js中定义了persist:mineradio-netease-login、persist:mineradio-qqmusic-login等独立持久化分区避免跨平台串号。Electron 主进程通过「信任主文档 URL IPC 来源校验」等方式约束登录态读取避免渲染层越权。用户数据与隐私README 规定登录 Cookie、搜索历史、自定义封面、自定义歌词、节奏分析缓存等数据只应保存在本机用户数据目录或浏览器本地存储中不应提交到仓库。desktop/main.js中通过app.setPath(userData, STABLE_USER_DATA_PATH)固定用户数据目录并将 Chromium 缓存sessionData独立指向可配置的缓存根路径默认存在D:\MineradioCache时使用该目录否则回退到 userData 下的cache「修改缓存目录不会导致账号被登出」。完整说明见 PRIVACY.md。版权与授权Mineradio 由 XxHuberrr 主要设计与打造emily作为早期视觉底层想法与emily视觉预设改进方向的共创者和灵感来源之一。项目采用 GPL-3.0 授权详见 LICENSEMR Logo、Mineradio 名称、界面视觉设计与原创视觉表达归作者所有第三方依赖和第三方服务分别遵循其各自授权与服务条款。作者支持渠道见 docs/SUPPORT.md。小结Mineradio 2.2.0 是一个结构清晰的 Electron 沉浸式播放器示例渲染层以public/js/modules按编号模块化组织桌面能力由 desktop/main.js 主进程统一调度本地服务与平台接入集中在 server.js构建分发则由 package.json 的 electron-builder 配置完成。其「客户端检测、浏览器下载、镜像加速、manifest 可模拟」的更新链路以及「仅服务用户自有账号、Cookie 本地持久化」的平台接入边界对希望二创或研究 Electron 桌面音乐应用的个人开发者具有直接的参考价值。由于项目处于长期停更状态任何二次开发都应基于当前仓库源码自行验证。赞分享桌面应用音视频【免费下载链接】Mineradio-paused一款以电影镜头、粒子视觉和歌词舞台为核心的沉浸式音乐播放器。项目地址https://gitcode.com/gh_mirrors/mi/Mineradio-paused点击查看免费下载相关推荐如何快速部署AWSGoat从零开始搭建云安全测试环境如何快速部署AWSGoat从零开始搭建云安全测试环境 AWSGoat是一个基于AWS的易受攻击基础设施专为云安全测试和学习设计。它通过Terraform实现Mineradio 版本演进与工程实践从 CHANGELOG 读懂沉浸式播放器的更新轨迹Mineradio 版本演进与工程实践从 CHANGELOG 读懂沉浸式播放器的更新轨迹 Mineradio 是一款以电影镜头、粒子视觉和歌词舞台为核心的 W桌面应用音视频终极指南用ImmersionBar打造沉浸式音乐播放器控制栏终极指南用ImmersionBar打造沉浸式音乐播放器控制栏 ImmersionBar是一款专为Android 4.4以上系统设计的沉浸式状态栏和导航栏管理工移动开发UI组件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表