Skip to content

SlemanDayoub7/mero_audio_player

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

26 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Mero Audio Player

cover

Your ultimate offline music companion β€” designed for speed, simplicity, and full control of your listening experience.

A showcase of advanced Flutter development, clean architecture, and native Android integration.

πŸ“Έ App Preview

Screenshot 1 Screenshot 2 Screenshot 3

Screenshot 4 Screenshot 5 Screenshot 6


πŸ“₯ Download Now

Download APK


πŸš€ Features

-Offline-First Music Library: Instantly play all your local audio files β€” no internet required.

-Smart Organization: Browse your music by songs, artists, albums, or folders.

-Advanced Playback: Create smart playlists and mark your favorite songs for quick access.

-Background Playback: Seamless listening with full notification controls and song artwork on the lock screen.

πŸ› οΈ Powerful Tools

-Built-in Equalizer: Fine-tune your music with a powerful multi-band equalizer.

-Audio Trimmer & Ringtone Set: Cut any part of a song and set it as your phone's ringtone directly from the app.

-Global Search & Sort: Find music quickly with search and sort by title, artist, album, duration, size, or date added.

🎨 Customization

-Visual Appeal: Beautiful, adaptive themes and custom wallpapers to personalize the player's look and feel.

-Internationalization: Support for 40 languages, providing a native experience for users worldwide.

πŸ—οΈ Technical Architecture

This project is built to demonstrate professional, scalable Flutter development practices.

Clean Architecture & State Management

-πŸ”„ BLoC Pattern: The app uses flutter_bloc for predictable, testable, and manageable state management. All events and states are built with equatable for efficient comparison.

-🧩 Clean Architecture: The codebase is structured into distinct layers (Presentation, Domain, Data) to ensure separation of concerns, testability, and maintainability.

-πŸ’‰ Dependency Injection: get_it is used for managing dependencies in a clean and decoupled manner.

Persistence & Data**

-πŸ—„οΈ Local Database: Hive is used for fast, lightweight local storage (e.g., favorites, playlists, app settings).

-πŸ“ File & Path Handling: path_provider and media_store_plus are used for robust access to the device's file system and media library.

Audio Engine

-🎧 Core Playback: Powered by just_audio and audio_service for robust, background-capable audio playback that integrates with the system.

-πŸ”Š Advanced Audio Features:

equalizer_flutter for system-level equalizer controls.

just_audio_background for configuring the Android notification.

on_audio_query to efficiently fetch metadata from the device's media store.

-🎼 Audio Manipulation: Custom Method Channels are implemented to access native Android code for audio trimming and interacting with system settings.

UI/UX

-πŸ“ Responsive Design: flutter_screenutil is used to create a consistent UI across different screen sizes and densities.

-🎭 Rich Animations: lottie for smooth, beautiful animations.

-πŸ–ΌοΈ Vector Graphics: flutter_svg for crisp, scalable icons and graphics.

-πŸ“œ Scrolling Text: marquee for long song titles that scroll automatically.

-πŸ“± Native Feel: cupertino_icons and Material Design are used to provide a familiar experience.

Other Key Plugins

-permission_handler: Manages runtime permissions gracefully.

-share_plus: Allows sharing songs and app content.

-ringtone_set_plus: Handles the system-level process of setting a ringtone.

-easy_localization: Manages the 40+ language supports efficiently.

-url_launcher: For opening links.

πŸ”§ Installation & Setup

Prerequisites

  • Flutter SDK
  • Device or emulator for testing
  • Android Studio / VS Code

Steps

Clone the repository

git clone https://github.com/SlemanDayoub7/mero_audio_player.git
cd mero_audio_player

Get dependencies

flutter pub get

Generate necessary files

flutter packages pub run build_runner build --delete-conflicting-outputs
flutter pub run easy_localization:generate -S assets/locales -O lib/generated -f keys

Run the app

flutter run

πŸ› οΈ Building for Release

To build an APK for distribution:

flutter build apk --release --split-per-abi

🀝 Contributing:

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

πŸ“„ License:

This project is licensed under the GPL-3.0 license LICENSE file.

πŸ‘¨β€πŸ’» Developer:

⭐ If you found this project helpful or impressive, don't forget to give it a star!