跳到正文
发现
LynMusic:跨平台本地音乐播放器
桌面应用游戏娱乐

LynMusic:跨平台本地音乐播放器

用 Kotlin Multiplatform 打造的跨平台本地音乐播放器,覆盖 Android、TV、车机与桌面。

admin
发布于 2026-10-28
浏览
4
访问
0
下载
0
版本
v1.1.3
平台
Windows、macOS、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

LynMusic 是一款面向个人音乐收藏场景的跨平台本地音乐播放器,基于 Kotlin Multiplatform 开发,可运行在 Android 手机/平板、Android TV、Android Automotive 车机,以及 Windows、macOS、Linux 的 JVM 桌面环境。

作者做这个播放器的初衷很直接:不少本地播放器的歌词搜索不好用,有些歌很难搜到;同时也想借项目学习 KMP,并在有了 codex 这类编程工具后,可以自主决定功能与界面。

原生 Swift 版本已上架苹果商店(iPhone、iPad、Mac):LynMusic App - App Store

主要功能

  • 多种音乐来源:支持本地文件夹导入,也可接入 Samba、WebDAV、Navidrome 等私有音乐来源,把散落在硬盘、NAS 和自建音乐服务里的内容汇总到同一套曲库;为多端统一数据,官方推荐使用 Navidrome。
  • 曲库浏览与管理:按歌曲、专辑、艺人等多维度浏览,支持喜欢、歌单、播放队列等常用管理能力。
  • 歌词能力:歌词搜索、在线结果回填、歌词分享,以及逐字歌词绘制与歌词样式调节。
  • 标签编辑:可修改音乐标题、歌手、专辑、歌词和封面等信息,让曲库更整洁统一。
  • 界面自定义:支持自定义界面主题,封面/唱片绘制、玻璃背景等组件在手机、桌面与车机之间共用。
  • 多端适配:Android TV 拥有独立的页面、导航与焦点管理;车机提供横竖屏布局;桌面端提供侧栏导航与迷你/完整播放器。支持投屏设备发现与 DLNA/UPnP 相关能力。

安装与使用

编译环境:Gradle Wrapper 9.6.0、AGP 9.4.1、Kotlin/Compose Compiler 2.4.21、KSP 2.3.12 和 JDK 21;SDK 配置为 compileSdk 37、targetSdk 36、minSdk 23。

编译安卓 APP

macOS/Linux:

# 编译 debug 版本
./gradlew :androidApp:assembleDebug
# 编译 release 版本
./gradlew :androidApp:assembleRelease

Windows:

.\gradlew.bat :androidApp:assembleDebug
.\gradlew.bat :androidApp:assembleRelease

直接运行 Desktop(JVM)应用

macOS/Linux:

./gradlew :composeApp:run

Windows:

.\gradlew.bat :composeApp:run

打包当前系统的独立安装包

在某个系统上运行,就会打出对应系统的安装包:

./gradlew :composeApp:packageDistributionForCurrentOS

可简写为 ./gradlew :composeApp:package,产物路径为 composeApp/build/compose/binaries/main/。

运行测试

完整单元测试运行 ./gradlew fullTest(Windows 使用 .\gradlew.bat fullTest),覆盖 JVM、Android-KMP host 与普通 Android Debug/Release 测试,结果位于 build/reports/fullTest/。

注意事项

  • LynMusic 以 GNU General Public License version 3 or later(GPL-3.0-or-later)分发,完整文本见仓库中的 LICENSE。
  • 项目包含第三方 DLNA/UPnP 组件 Platinum UPnP SDK,该组件使用 GPL-2.0-or-later / commercial 双许可;由于完整应用包含该 GPL 组件,发布完整源码或二进制产物时需遵守 GPL-3.0-or-later 的条款,第三方组件说明见 THIRD_PARTY_LICENSES.md。
  • 代码按模块划分:shared:*、player:core 承载共享数据与业务,ui:common 为基础组件,ui:mobile、ui:desktop、ui:automotive、tvApp 分别为各端页面,androidApp、composeApp、automotiveApp 为各平台启动与打包入口;页面模块之间互不依赖,可通过 ./gradlew verifyUiModuleBoundaries 校验模块边界。

本作品整理自 GitHub 开源项目 wesley666/LynMusic,原作者 @wesley666。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v1.1.3当前版本

    新增歌词样式调节,优化飞牛音乐文件夹功能,并修复若干 bug。

评论