🎵 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
Splash Songs Song sheet
Player 1 Player 2 Artists
Player 1 Player 2 Artists
Albums Genres Artist
Albums Genres Artist
Album Genre Drawer
Album Genre Drawer
About Settings Settings orange
About Settings Settings orange
Songs 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

  1. Clone the repo
git clone
  1. Install dependencies
dart pub get
  1. 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!

GitHub

View Github