Meloplay is a local music player app that plays music from your device built with Flutter.
- Android
- iOS (not tested)
- Play music from your device
- Background audio
- Notification controls
- Lock screen controls
- Play, pause, skip, previous, seek
- Shuffle and repeat
- Search for music, artists, albums, genres
- Sort by (title, artist, album, duration, date, size, etc)
- Order by (ascending, descending)
- Playlists (Read, create, rename, delete, add songs, remove songs)
- Queue (List, add songs, remove songs, change order)
- Favorites (Add songs, remove songs)
- Recently played
- Most played
- Artists
- Albums
- Genres
- Lyrics
- Equalizer
- Sleep timer
- Share music
- Settings
- Themes (multiple themes)
- Localization
Splash | Songs | Player |
---|---|---|
Playlists | Artists | Albums |
---|---|---|
Genres | Drawer | Themes |
---|---|---|
Artist | Album | Genre |
---|---|---|
Search | Settings | Scan |
---|---|---|
Name | Version | Description |
---|---|---|
bloc | 8.1.4 | A predictable state management library |
flutter_bloc | 8.1.6 | Flutter Widgets that make it easy to implement BLoC design patterns |
flutter_staggered_animations | 1.1.1 | A plugin for adding staggered animations to your Flutter apps |
fluttertoast | 8.2.8 | Flutter plugin for displaying toast messages. |
flutter_cache_manager | 3.4.1 | A Flutter plugin for caching images and other resources. |
get_it | 8.0.0 | Simple direct Service Locator that allows to decouple the interface from a concrete implementation and to access the concrete implementation from everywhere in your App |
hive | 2.2.3 | A lightweight and blazing fast key-value database |
hive_flutter | 1.1.0 | Hive database implementation for Flutter |
just_audio | 0.9.41 | A feature-rich audio player for Flutter |
just_audio_background | 0.0.1-beta.11 | A plugin for playing audio in the background on Android and iOS. |
lottie | 3.1.2 | Lottie is a mobile library for Android and iOS that parses Lottie and JSON-based animations and renders them natively on mobile. |
marquee | 2.2.3 | A Flutter widget that scrolls text infinitely. |
on_audio_query | 2.9.0 | A Flutter plugin to query songs on Android and iOS |
package_info_plus | 8.0.2 | Flutter plugin for querying information about the application package, such as CFBundleVersion on iOS or versionCode on Android. |
permission_handler | 11.3.1 | A Flutter plugin for permission handling. This plugin provides a cross-platform (iOS, Android) API to request and check permissions. |
rxdart | 0.28.0 | RxDart is an implementation of the popular reactiveX api for asynchronous programming, leveraging the native Dart Streams API. |
share_plus | 10.0.2 | Flutter plugin for sharing content via the platform share UI, using the ACTION_SEND intent on Android and UIActivityViewController on iOS. |
url_launcher | 6.3.0 | A Flutter plugin for launching a URL in the mobile platform. |
- Flutter
- Android Studio / Xcode
-
Clone the repo
git clone
-
Install dependencies
dart pub get
-
Run the app
flutter run
<!-- url_launcher -->
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="https" />
</intent>
</queries>
<!-- !DANGER! Delete, update songs/playlists -->
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<!-- Android 12 or below -->
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="29"
/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- Android 13 or greater -->
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<!-- Audio service -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<!-- url_launcher -->
<key>LSApplicationQueriesSchemes</key>
<array>
<string>https</string>
</array>
<key>NSAppleMusicUsageDescription</key>
<string>$(PROJECT_NAME) requires access to media library</string>
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Distributed under the MIT License. See LICENSE for more information.
Give a ⭐️ if you like this project!