6
0
Fork
You've already forked android-headless-player
0
No description
  • Kotlin 100%
2026年06月20日 17:50:58 +02:00
.idea Integrate with mediasession 2026年06月20日 17:00:13 +02:00
app Add logos 2026年06月20日 17:28:43 +02:00
gradle Integrate with mediasession 2026年06月20日 17:00:13 +02:00
.gitignore Initial version from docs 2026年06月20日 14:03:26 +02:00
build.gradle.kts Initial version from docs 2026年06月20日 14:03:26 +02:00
gradle.properties Initial version from docs 2026年06月20日 14:03:26 +02:00
gradlew Initial version from docs 2026年06月20日 14:03:26 +02:00
gradlew.bat Initial version from docs 2026年06月20日 14:03:26 +02:00
README.md Add README 2026年06月20日 17:50:58 +02:00
settings.gradle.kts Initial version from docs 2026年06月20日 14:03:26 +02:00

Headless player app

This is initially an experiment to build a headless app for Fairplayer that any PWA in the Independent Digital Music Ecosystem may use.

What do we mean by a "headless app"?

An app that doesn't have much in terms of a UI, intended to be driven from a web application via HTTP.

Why a native "headless app"?

There are reasons why many of us don't want to build native apps and prefer a PWA. Some of these reasons are technical, other more political.

However, PWA/web apps may have some limitations that can only/better be overcome via native functionality (or the existance of an "app"):

  • Background limitations (mobile OS may put more restrictions on battery usage and thus background operation, which may make playback stop)
  • Local download of purchased files that can be played offline (together with online discovery)
  • Discoverability via app stores...

At the same time, I don't think we all want the duplication of efforts that comes from having to rebuild our offerings as an app.

So the idea here is to come up with a solution that:

  • Can let us just have the bulk of the functionality as a (progressive) web app
  • Only a very minimal functionality (initially a play queue, then offline storage) has a "native counterpart"
  • This native counterpart doesn't really need to have a UI, but it offers an HTTP API that web apps will use to manage the queue

A shared commons

This is intended as usable by any app in the "IDME", but not intended as a "forkable app" but a single app install that we all can share. An interesting side effect of this is that e.g. both Fairplayer and Mirlo may be able to "enqueue" songs for playback, and share a single queue, e.g.:

  • I am listening to something from Fairplayer but browsing an artist in Mirlo I discovered via Fairplayer
  • I can add one of that artist's releases to the queue
  • In due time, that release will play. I may look at the queue from within Fairplayer as it has a UI to browse it.