当前位置: 首页 > news >正文

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),仅供参考

http://www.cnnetsun.cn/news/4314192.html

相关文章:

  • 7款降重会改坏论文吗?实测打分各有侧重(2026)
  • Jellyfin 媒体服务器快速部署指南:免费搭建你的私人影音中心
  • 京东春招技术岗笔试复盘:算法题型、八股范围与时间分配全解析
  • Starship 配色方案完整指南:3 步让凌乱的终端提示符变成清晰的视觉分层
  • Win11Debloat教程:3步给Windows 11瘦身,清理145个预装应用和AI杂项
  • 显卡无故氧化、接触不良?机房高湿腐蚀正在悄悄耗损硬件
  • 如何三步解包、修改并重打包 Android 启动镜像:MagiskBoot 实战指南
  • wav可以转mp3吗?当然可以,分享我这几天亲自用过的转换方法
  • 数据库岗秋招笔试复盘:SQL、索引与事务核心考点解析
  • 小满春招基础架构笔试复盘:分布式、存储与高可用考点解析
  • Anthropic API接入与Claude连接错误排查实践
  • 大模型评测无中立基准:配置变量如何左右榜单排名
  • 区块链投票系统毕业设计:从原理到实现的完整指南
  • 从零开始掌握 Web 安全:2026 年网络安全工程师必须掌握的漏洞挖掘技术
  • 基于Python的智能交通超速识别与车牌违法记录系统
  • 【关注可白嫖源码】--课程设计--毕业设计--springboot党史知识科普网站[编号:project55345](案件分析)
  • VS2017下OSG与Bullet物理引擎集成编译与碰撞检测实战
  • 腾讯音乐秋招笔试复盘:技术研究岗的考察重点与准备思路
  • 2026年政府采购对于小微企业的优势:盲投的机会来了
  • 达梦DW主备环境搭建
  • 语音转文本模型落地实时语音交互:从原理到工程实践
  • Windows平台Poppler预编译包:开箱即用的PDF处理利器部署与实战指南
  • Stable Diffusion模型服务化:基于BentoDiffusion的生产级部署实践
  • 移动端单词查找与字母重排工具:词典组织、算法与性能优化实战
  • 数学建模实战方法论:从题干解构到LaTeX-代码-论文闭环
  • 大模型应用演示翻车?从工程准备到稳定交付的避坑指南
  • 基于区块链的农产品溯源平台:Java+Spring Boot+FISCO BCOS混合架构实战
  • 防蒸馏机制失效背后:隐藏思维链与重现概率异常解析
  • GitHub Actions 数据库服务配置:MySQL/PostgreSQL/Redis/SQL Server 集成测试指南
  • iOS 27 AI收费争议背后:端侧与云侧推理的技术边界