news 2026/8/30 20:56:06

LX Music 桌面版:免费聚合 6 大音乐源搜索的跨平台播放器完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LX Music 桌面版:免费聚合 6 大音乐源搜索的跨平台播放器完整指南

LX Music 桌面版:免费聚合 6 大音乐源搜索的跨平台播放器完整指南

【免费下载链接】lx-music-desktop一个基于 Electron 的音乐软件项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop

LX Music 桌面版(lx-music-desktop)是一款免费开源、基于 Electron 与 Vue 3 的跨平台音乐播放器,在一个客户端内聚合酷我、酷狗、QQ 音乐、网易云、咪咕、虾米 6 个音乐源的搜索与播放,并附带本地 HTTP 开放 API。本文写给想摆脱多平台切换、愿意自己动手配置的技术用户。

为什么需要多音乐源聚合搜索

你的歌单里有一首歌只在某一家平台能搜到,另一首只在别家——大多数播放器的困境是:切来切去,登录三个账号,还得为 VIP 内容妥协。LX Music 的做法是反过来的:你只面对一个搜索框,它在后台同时向所有启用的音乐源发请求,把结果合并成一份列表给你。当前版本为 v2.12.2,支持 Linux、macOS 和 Windows 7 及以上系统。

多源聚合搜索的实现:源码在哪、怎么去重

6 个音乐源的实现在 src/renderer/utils/musicSdk/ 下,每个源一个目录:

目录模块内可见的接口文件
酷我musicSdk/kw/musicSearch、lyric、leaderboard、songList、tipSearch
酷狗musicSdk/kg/musicSearch、album、comment、lyric、singer
QQ 音乐musicSdk/tx/musicSearch、musicInfo、comment、lyric
网易云musicSdk/wy/musicSearch、musicDetail、singer、songList
咪咕musicSdk/mg/musicInfo、comment、lyric、songId
虾米musicSdk/xm.js单文件实现

入口 musicSdk/index.js 定义了聚合逻辑,值得看两处:

并行请求searchMusicPromise.all同时向所有源发起搜索,每源取前 25 条,单个源失败(.catch(_ => null))不会拖垮整体。注意虾米被显式排除了聚合(excludeSource = ['xm']),它是独立使用的源。

去重与匹配findMusic把多源结果按一套规则排序合并:先把歌名、歌手、专辑名统一清洗(去空格、标点、括号、转小写),时长按"5 秒误差"判等,歌手多人名按分隔符拆分排序后比较;然后按"歌手+歌名+时长全等 > 歌名+歌手+专辑等 > …"的优先级分层挑选,把最像同一首歌的结果归到一起。这套逻辑就是它在 List/MusicList/ 里给本地列表歌曲"自动找到在线源"的基础。

音质选项定义在 src/common/constants.ts 的QUALITYSflac24bitflacwavape320k192k128k

从克隆到跑起来:上手路径与首次体验

环境要求写在 package.json 的engines:Node ≥ 22、npm ≥ 8.5.2。

git clone https://gitcode.com/GitHub_Trending/lx/lx-music-desktop cd lx-music-desktop npm install npm run dev

首次启动建议先通读一遍设置页(views/Setting/)。README 明确说了:默认设置和 UI 操作"不以新手友好为目标",需要自己按习惯调。几个高频项:

  • 搜索:搜索源可在"全部"与单个源之间切换(search.source默认'all'),见 SettingSearch.vue
  • 音质与代理:网络与音质选项在 SettingNetwork.vue
  • 快捷键:全局热键在 SettingHotKey.vue 配置,默认绑定见 src/common/defaultHotKey.ts

本地数据用 better-sqlite3 存储,目录为:Linux~/.config/lx-music-desktop、macOS~/Library/Application Support/lx-music-desktop、Windows%APPDATA%/lx-music-desktop;Windows 上若程序目录存在portable文件夹,则自动改用该目录存数据(v1.17.0+)。

同类播放器怎么选:LX Music 的差异点

能力LX Music平台官方 App一般开源播放器
跨平台多源聚合搜索6 源并行 + 去重合并单一源少数
本地 HTTP 控制接口(v2.7.0+)内置,见下文少数
可自部署的数据同步服务(v2.2.0+)支持账号体系少见
Windows 便携模式自动检测portable目录少见
分发格式Win 安装包/绿色版、Linux deb/rpm/AppImage/pacman、macOS dmg(含 arm64)通常 1~2 种
授权Apache-2.0 开源闭源视项目

构建矩阵可以直接在 package.json 的pack:*脚本里核对,例如pack:linux一次产出 deb(amd64/arm64/armv7l)、appImage、rpm、pacman 四种包。

进阶:本地开放 API、自部署同步与自定义源

开放 API(v2.7.0+):在设置中开启后,主进程在 src/main/modules/openApi/ 启动一个本地 HTTP 服务,默认端口23330(defaultSetting.ts 中openAPI.port),默认只绑定 127.0.0.1,可勾选openAPI.bindLan绑定 0.0.0.0 供局域网调用。路由直接看handleStartServer/play/pause/skip-next/skip-prev/seek?offset=秒/volume?volume=0-100/mute/collect,查询类有/status(支持filter参数挑字段)、/lyric/lyric-all/subscribe-player-status用 SSE 持续推送歌名、进度、当前歌词行等。写个脚本让 Home Assistant 或桌面歌词软件读播放状态,调几个 GET 就行。

自部署数据同步(v2.2.0+):同步服务是独立项目,有服务器的人可部署为私人多端同步。客户端侧实现分布在 src/main/modules/sync/(client/server/两套模块),同步列表、设置等内容;不想自部署则用软件内置的公共同步服务,入口在 SettingSync/。

注册自定义源:搜索的"源"机制在 musicSdk/api-source.js——按{源id}_api_{平台id}allApi取接口,且当apiSourceuser_api开头时直接返回userApi.apis[source],即指向你自己服务器的远程 API 列表。在设置里填好自定义源地址,各平台的搜索、歌词、榜单请求就会改走你的接口,这也是官方对"音频链接来源不可校验"这一问题的解耦方式。新源接入流程:在 musicSdk/ 建目录、实现同名接口、在 api-source-info.ts 注册并声明supportQualitys

主题与桌面歌词:主题素材在 src/common/theme/images/,createThemes.js 负责生成主题配置;桌面歌词是独立渲染进程,代码在 src/renderer-lyric/,由 main/modules/winLyric/ 管理窗口。

适合谁,以及边界在哪

  • 适合:愿意花 20 分钟调设置、想要多源聚合 + 本地 API 折腾空间的用户;有服务器、想数据自己掌控的人
  • 不适合:开箱即用型用户——官方自己声明 UI 不以新手友好为目标;纯听正版会员内容的用户
  • 音频准确性不保证:README 协议明确,项目本身"没有获取某个音频数据的能力",播放什么取决于你配置的源返回的链接,可能出现歌曲与内容不对应或无法播放
  • 版权约束:协议要求使用者在 24 小时内清除使用过程中产生的版权数据,且仅限非商业用途
  • 维护动态:README 顶部提示项目有"发展调整与新项目计划"(issue #1912),选型前建议确认仓库近期提交是否活跃

小结

LX Music 的价值点很具体:6 源并行聚合搜索加基于时长/歌手/歌名的去重合并、v2.7.0 起默认 23330 端口的本地开放 API、v2.2.0 起可自部署的同步服务,再加 Apache-2.0 授权和覆盖 deb/rpm/AppImage/pacman 的全平台打包。它把"能不能用"的答案写在源码里,而不是宣传页里——去读 musicSdk/index.js 比读任何评测都直接。参与方式:克隆仓库后切到dev分支开发并向该分支提 PR,新功能建议先开 Issue 讨论。

【免费下载链接】lx-music-desktop一个基于 Electron 的音乐软件项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/30 20:51:00

7款降重会改坏论文吗?实测打分各有侧重(2026)

降重会不会影响质量,是每个用过降重工具的人都绕不开的顾虑。花了几个小时把重复率压下去,结果导师一句“语句不通顺”打回来重写,比不改还难受。这次我花了三周时间,用一篇8000字的经管类论文初稿,对市面上7款主流降重…

作者头像 李华
网站建设 2026/8/30 20:46:44

Jellyfin 媒体服务器快速部署指南:免费搭建你的私人影音中心

Jellyfin 媒体服务器快速部署指南:免费搭建你的私人影音中心 【免费下载链接】jellyfin The Free Software Media System - Server Backend & API 项目地址: https://gitcode.com/GitHub_Trending/je/jellyfin 电脑、NAS、手机里的电影、剧集和音乐散落各…

作者头像 李华
网站建设 2026/8/30 20:46:02

京东春招技术岗笔试复盘:算法题型、八股范围与时间分配全解析

2024年春招,技术通用岗位,第四批笔试——看到这个通知的时候,我正在工位上刷着LeetCode。说实话,前三批的笔试已经刷掉了一批人,群里的讨论热度也降了不少,到第四批反而让人心里更没底。我当时投的是京东的…

作者头像 李华
网站建设 2026/8/30 20:39:28

显卡无故氧化、接触不良?机房高湿腐蚀正在悄悄耗损硬件

很多机房运维只盯着温度与功耗,很少把湿度管控放在重要位置。相比于高温、静电的直观影响,高湿环境对硬件的损伤更隐蔽 —— 不会立刻烧毁板卡,却会持续氧化腐蚀引脚、焊点与电路板,逐步引发各类无规律接触故障,等到肉…

作者头像 李华