2026-10-09 22:41:45 +08:00
2026-10-09 22:41:45 +08:00
2026-10-09 22:41:45 +08:00
2026-10-03 23:55:24 +08:00
2026-10-09 22:41:45 +08:00
2026-10-09 22:41:45 +08:00
2026-08-30 19:36:25 +08:00
2026-08-30 19:36:25 +08:00
2026-10-09 22:41:45 +08:00
2026-08-30 19:36:25 +08:00
2026-08-11 00:33:28 +08:00
2026-08-30 19:36:25 +08:00
2026-08-30 19:36:25 +08:00

LoveLive Music Player — KMP + Compose Multiplatform

与 Flutter 仓库 LoveLiveMusicPlayerMobile 并列。UI 使用 Compose Multiplatform(Android / iOS 一致);PC 仍为 Electron,本仓库提供协议客户端与共享模型。

包名:com.zhushenwudi.lovelivemusicplayer

Maven / Nexus

settings.gradle.kts 已对齐 Flutter android/nexus_repos.gradle:

  • 探测 http://192.168.123.100:18081/service/rest/v1/status(2s)
  • 可达 → maven-public / google / mob / gradle(插件) / jitpack
  • 不可达 → 公网 google() / mavenCentral() / gradlePluginPortal() 等
  • 强制:-PuseNexus=true|false

模块

模块 职责
:shared 协议、模型、SQLDelight、OSS、歌词、传歌/同步、Player、Settings、FileSystem、PlatformServices
:composeApp CMP UI + Android 原生(Glance Widget、LyricService、扫码、WebView)
iosApp/ Xcode 脚手架(CarPlay / PiP / WidgetKit),需 macOS 签名链接

构建(Windows)

./gradlew.bat :shared:testDebugUnitTest
./gradlew.bat :composeApp:assembleDebug
./gradlew.bat :composeApp:installDebug

Debug APK:composeApp/build/outputs/apk/debug/composeApp-debug.apk

原生功能矩阵

功能 Android iOS 状态
播放引擎 ExoPlayer(单实例 + MediaSession) AVPlayer + MPNowPlaying / RemoteCommand done
FileSystem.writeBytes 完整 NSData 原子写入 done
桌面歌词 LyricService 悬浮窗 + 设置开关 PiP(iosApp/pip/*,Swift) done(iOS 需 Mac 链 framework)
Home Widget Glance 四样式 + HomeWidgetPreferences WidgetKit White/Black(iosApp/WidgetExtension) done(iOS 需 Xcode target)
CarPlay 目录模型 CarPlayCatalog(common) CarPlaySceneDelegate Tab Music/Album/Mine sources done;真机需 Apple carplay-audio entitlement
深链 llmp:// Manifest + DeepLinkHandler SceneDelegate + App Group done
USB 挂载监听 Broadcast + UsbMountMonitor N/A(NoOp) done(Android)
系统分享 ACTION_SEND UIActivity / Notification → Swift done(最低系统分享)
QR 扫码 ZXing embedded QrScanActivity IP 粘贴(相机可在 Swift 补) done(Android 真扫)
萌娘百科 / 立绘 WebViewActivity + assets/tachie openURL / Safari done
友盟 UmengBridge 反射(key 634bd9c688ccdf4b7e4ac67b) 需在 Swift 初始化 iOS key done(Android 反射;SDK 可选)
PlatformServices MainActivity installAndroidPlatformServices installIosPlatformServices done(非 NoOp 默认)

仍需 macOS / Apple 开发者完成的项

  1. Xcode 工程:创建 App + Widget Extension,链接 ComposeApp.framework(./gradlew :composeApp:linkDebugFrameworkIosSimulatorArm64)
  2. 签名 / App Group:与 Flutter 一致 — group.com.zhushenwudi.lovelivemusicplayer(Bundle ID com.zhushenwudi.lovelivemusicplayer;见 iosApp/README.md)
  3. CarPlay entitlement:com.apple.developer.carplay-audio + playable-content 需 Apple 审批后真机可用
  4. PiP 资源:black.mp4(Flutter 仓库若缺失需自行放入 iosApp/iosApp/pip/)
  5. Swift ↔ Kotlin 播放回调:Widget/CarPlay 的 NotificationCenter 事件需在 Mac 上接到 AppContainer.player

已实现业务(相对骨架)

  1. OSS 元数据入库、曲库 6 Tab、播放队列、滚动歌词、Love/歌单/History
  2. WiFi 传歌 / 数据同步、驾驶模式、SD/USB、设置、每日推送
  3. 桌面歌词 / Widget / 扫码 / WebView / 分享 / 深链 / 友盟桥
  4. FeatureModuleIndex 模块清单(日志页)

对照

主题 Flutter 本仓库
Nexus android/nexus_repos.gradle settings.gradle.kts
常量 lib/global/const.dart Const.kt
入库 global_db.dart DataImportService
协议 Docs 03 protocol/* + transfer/*
歌词 global_lyric.dart lyric/* + native/LyricService
Widget SP HomeWidgetPreferences 同名键
CarPlay lib/pages/carplay/* CarPlayCatalog + Swift Scene
UI GetX composeApp CMP

文档:E:\LoveLiveMusicPlayer-Docs\

S
Description
No description provided
Readme
292 MiB
Languages
Kotlin 89.8%
Swift 9.6%
HTML 0.5%