A simple, rational music player for android
Find a file
OxygenCobalt 2576fb26ba
music: introduce backend system
Move out the MediaStoreCompat interface into a full interface called
Backend.

In preparation for direct metadata parsing, it would be useful to
create some kind of object system to properly handle the capabilities
of each metadata indexing mode. Backend fulfills that by allowing
each object to implement their own query and then loading routine.

This system is designed somewhat strangely. This is firstly because
the ExoPlayer metadata backend will have to plug in to the original
MediaStore backend, so making methods more granular allows the
ExoPlayer backend to avoid some of the stupid inefficiencies from
the actual MediaStore backend, such as the genre loading process.
We also want to separate the steps of loading music in order to
more adequately show the current loading process to the user in
a future change.
2022-05-28 13:13:19 -06:00
.github all: fix misc issues 2022-05-20 11:30:56 -06:00
app music: introduce backend system 2022-05-28 13:13:19 -06:00
fastlane/metadata/android Version 2.3.0 2022-05-26 16:33:47 -06:00
gradle/wrapper deps: upgrade deps 2022-05-26 10:29:41 -06:00
info fastlane: update screenshots 2022-05-26 15:51:17 -06:00
.gitignore docs: add changelog 2022-02-06 14:01:03 -07:00
build.gradle deps: upgrade deps 2022-05-26 10:29:41 -06:00
CHANGELOG.md music: introduce backend system 2022-05-28 13:13:19 -06:00
gradle.properties all: cleanup 2022-03-13 16:42:03 -06:00
gradlew deps: upgrade deps 2022-05-26 10:29:41 -06:00
gradlew.bat ui: brighten dark theme 2021-09-01 18:48:02 -06:00
LICENSE Initial commit 2020-08-17 15:35:12 +00:00
prebuild.py home: clean up fast scroller 2022-03-19 10:59:13 -06:00
README.md Version 2.3.0 2022-05-26 16:33:47 -06:00
settings.gradle deps: use aar 2022-01-27 15:05:45 -07:00

Auxio

A simple, rational music player for android.

GitHub release Minimum SDK

Changelog | FAQ | Licenses | Contributing | Architecture

About

Auxio is a local music player with a fast, reliable UI/UX without the many useless features present in other music players. Built off of Exoplayer, Auxio has a much better listening experience compared to other apps that use the native MediaPlayer API. In short, It plays music.

I primarily built Auxio for myself, but you can use it too, I guess.

The default branch is the development version of the repository. For a stable version, see the master branch.

Screenshots

Features

  • ExoPlayer based playback
  • Snappy UI derived from the latest Material Design guidelines
  • Opinionated UX that prioritizes ease of use over edge cases
  • Customizable behavior
  • Advanced media indexer that prioritizes correct metadata
  • Reliable playback state persistence
  • Full ReplayGain support (On MP3, MP4, FLAC, OGG, and OPUS)
  • Edge-to-edge
  • Embedded covers support
  • Search Functionality
  • Headset autoplay
  • Stylish widgets that automatically adapt to their size
  • Completely private and offline
  • No rounded album covers (Unless you want them. Then you can.)

To come in the future:

  • Automatic music rescanning
  • Even better metadata support
  • Playlists
  • Liked songs
  • Artist Images
  • More customization options
  • Other things, probably

Permissions

  • Storage (READ_EXTERNAL_STORAGE): to read and play your media files
  • Services (FOREGROUND_SERVICE, WAKE_LOCK): to keep the music playing even if the app itself is in background

Building

Auxio relies on a custom version of ExoPlayer that enables some extra features. So, the build process is as follows:

  1. cd into the project directory.
  2. Run python3 prebuild.py, which installs ExoPlayer and it's extensions.
    • The pre-build process only works with *nix systems. On windows, this process must be done manually.
  3. Build the project normally in Android Studio.

Contributing

Auxio accepts most contributions as long as they follow the Contribution Guidelines.

However, feature additions and major UI changes are less likely to be accepted. See Accepted Additions for more information.

License

GNU GPLv3 Image

Auxio is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.