ARTICLE DETAIL

资讯详情

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

洛雪音乐助手:聚合七大音乐源的免费桌面播放器

洛雪音乐助手:聚合七大音乐源的免费桌面播放器 洛雪音乐助手聚合七大音乐源的免费桌面播放器【免费下载链接】lx-music-desktop一个基于 Electron 的音乐软件项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop洛雪音乐助手lx-music-desktop是一款基于 Electron 和 Vue 3 开发的开源桌面音乐播放器它把酷我、酷狗、咪咕、QQ 音乐、网易云等 7 个平台的搜索结果汇到同一个列表里一次搜索就能找到歌并直接播放。如果你受够了在各个 App 之间来回切、或者想折腾一个完全免费的本地播放器这个项目的完成度足够你长期用下去。 一次搜索找齐全平台的歌聚合搜索的实现思路很直接每个音乐源一个独立模块由统一入口并行调度结果再合并去重。所有音乐源的接口代码都放在src/renderer/utils/musicSdk/目录下酷我、酷狗、咪咕、QQ 音乐、网易云、百度分别对应kw、kg、mg、tx、wy、bd六个文件夹虾米则是单独的xm.js。每个模块内部实现结构一致——搜索、排行榜、歌单、歌词各司其职api-source.js负责根据当前选定的接口来源做统一分发。这里有个细节值得展开。选择全部来源搜索时代码会同时向所有音乐源发起请求let task [] for (const source of sources) { task.push(music[source].musicSearch.search(text, page, limit).catch(() emptyResult)) } return Promise.all(task).then(results setLists(results, page, text))这段代码在做什么把搜索关键词分发给每一个音乐源并行请求任何一个源失败都不会影响整体全部返回后统一走setLists合并。合并过程做了两件事——deduplicationList把不同平台上的同一首歌识别出来只保留一份sortInsert再按歌曲名歌手与关键词的相似度把最匹配的结果排到最前面。单个源挂了、超时了体验也只是少几条结果而不是搜索失败。音质方面常量里定义了 128k、192k、320k、FLAC、WAV、APE 乃至 24bit FLAC 这些档位具体能选到哪种取决于所选源对该平台的支持情况在设置里可以按平台单独指定。主界面搜索、歌单与播放控制一屏完成 给界面换一套主题背景主题系统内置了多张全屏背景图开箱即可切换配置文件和素材集中在src/common/theme/images/目录。除了背景图src/common/theme/下的createThemes.js和colorUtils.js负责生成与处理主题色界面主色、文字色都可以跟着背景走。内置的动漫风主题背景设置页可一键切换中国风节庆主题适合换季时给播放器换个氛围换主题属于看着爽的层面但这个项目还有更硬核的玩法——它允许你从外部直接操控播放器本身。 用开放 API 把播放器交给第三方从 v2.7.0 起设置里开启开放 API 后软件会在本地启动一个 HTTP 服务把播放控制、状态查询、歌词获取都变成可调用的接口实现代码在src/main/modules/openApi/里不到三百行。常用端点如下端点作用/play、/pause播放 / 暂停/skip-next、/skip-prev切下一首 / 上一首/status查询当前状态曲名、歌手、进度/lyric获取当前歌词/subscribe-player-status以 SSE 方式实时订阅播放状态变化前几个端点本质上是把界面上的按钮翻译成 HTTP 请求/play内部走的就是和任务栏按钮相同的逻辑。真正方便的是最后一个基于 SSE 的订阅连接歌词当前行、播放进度这类状态变化会主动推给你不需要轮询。这套接口能玩出的场景不少——智能家居里挂个面板切歌、脚本里写下班自动放轻音乐、或者给自己的语音助手加个播放指令都只是几行请求的事。默认只绑定本机回环地址勾选 LAN 选项后才会暴露到局域网。 多台设备间同步歌单和设置多设备用户最缺的是数据互通洛雪音乐助手的方案是从 v2.2.0 起提供独立的数据同步服务如果你有一台自己的服务器可以部署它作为私人多端同步服务把播放列表、设置等数据在多台设备之间保持同步数据也掌握在自己手里。本地数据则全部存放在用户目录下Linux 是~/.config/lx-music-desktopmacOS 在~/Library/Application Support/lx-music-desktopWindows 位于%APPDATA%/lx-music-desktop。Windows 平台还有个便携模式——程序目录里放一个portable文件夹数据就会改存到这里适合把整个播放器拷进 U 盘带着走。 在 Windows、macOS 和 Linux 上跑起来打包体系是每个平台一种产物、一种架构一个包的平铺脚本从package.json里能直接看出覆盖面平台产物Windows.exe 安装包、.7z 绿色版x86 / x64 / arm64另有 Win7 兼容版Linux.deb、.rpm、.AppImage、.pacmanmacOS.dmgIntel 与 Apple Silicon 各一份技术栈方面运行时是 Electron界面用 Vue 3 加 TypeScript 编写本地存储选了 better-sqlite3构建走 webpack。开发环境要求 Node.js 22 及以上初始化步骤见 README 中指向的源码使用说明这里不重复展开。对想参与贡献的开发者仓库约定在dev分支上开发并提交 PR新功能的 PR 建议先开 Issue 说明需求。 想加一个新音乐源要做什么扩展一个新音乐源的成本是可控的路径就是前面提到的 musicSdk 目录建一个文件夹按现有模块的接口规范实现搜索、排行榜、歌词等函数再让统一调度入口认识它。因为各模块职责边界清晰改坏一个源不会波及其他平台的正常工作这也是把每个源一个模块当默认约定的好处。当前版本 2.12.2基于 Apache 2.0 协议开源社区更新节奏稳定。项目托管在 GitCode 的 lx/lx-music-desktop 仓库感兴趣的话可以直接去看源码从 musicSdk 目录读起是性价比最高的切入点。【免费下载链接】lx-music-desktop一个基于 Electron 的音乐软件项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表