🎵 Meloplay
Meloplay is a local music player app that plays music from your device built with Flutter.
📱 Platforms
- Android
- iOS
✨ Features
- Play music from your device
- Background audio
- Notification controls
- Lock screen controls
- Play, pause, skip, previous, seek
- Shuffle and repeat
- Search for music
- Playlists (Read, create, rename, delete, add songs, remove songs)
- Favorites (Add songs, remove songs)
- Recently played
- Most played
- Artists
- Albums
- Genres
- Lyrics
- Equalizer
- Sleep timer
- Share music
- Settings
- Themes (multiple themes)
📸 Screenshots
Splash | Songs | Song sheet |
---|---|---|
Player 1 | Player 2 | Artists |
---|---|---|
Albums | Genres | Artist |
---|---|---|
Album | Genre | Drawer |
---|---|---|
About | Settings | Settings orange |
---|---|---|
Songs orange |
---|
📚 Dependencies
Name | Version | Description |
---|---|---|
audio_service | 0.18.10 | A Flutter plugin to play audio in the background, with notification support and play/pause/stop/seek controls. |
bloc | 8.1.2 | A predictable state management library |
flutter_bloc | 8.1.3 | Flutter Widgets that make it easy to implement BLoC design patterns |
hive | 2.2.3 | A lightweight and blazing fast key-value database |
hive_flutter | 1.1.0 | Hive database implementation for Flutter |
flutter_launcher_icons | 0.13.1 | A package that provides icons for Flutter apps |
just_audio | 0.9.34 | A feature-rich audio player for Flutter |
on_audio_query | 2.9.0 | A Flutter plugin to query songs on Android and iOS |
package_info_plus | 4.1.0 | Flutter plugin for querying information about the application package, such as CFBundleVersion on iOS or versionCode on Android. |
permission_handler | 10.4.3 | A Flutter plugin for permission handling. This plugin provides a cross-platform (iOS, Android) API to request and check permissions. |
rxdart | 0.27.7 | RxDart is an implementation of the popular reactiveX api for asynchronous programming, leveraging the native Dart Streams API. |
share_plus | 7.1.0 | Flutter plugin for sharing content via the platform share UI, using the ACTION_SEND intent on Android and UIActivityViewController on iOS. |
url_launcher | 6.1.12 | A Flutter plugin for launching a URL in the mobile platform. |
📦 Installation
Prerequisites
- Flutter
- Android Studio / Xcode
Setup
- Clone the repo
git clone
- Install dependencies
dart pub get
- Run the app
flutter run
❗ Permissions
Android
<!-- url_launcher -->
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="https" />
</intent>
</queries>
<!-- Android 13+ notification -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<!-- !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" />
iOS
<!-- 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>
🤝 Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
📝 License
Distributed under the MIT License. See LICENSE for more information.
📧 Contact
🌟 Show your support
Give a ⭐️ if you like this project!