প্রকল্প সম্পর্কে
NeriPlayer একটি নেটিভ অ্যান্ড্রয়েড অডিও প্লেয়ার, যা Jetpack Compose ও Media3 দিয়ে নির্মিত এবং Android 9 (API 28) বা তার উপরের ডিভাইস সমর্থন করে। প্রকল্পটির অবস্থান হলো "বহু-উৎস অনুসন্ধান, অনলাইন প্লেব্যাক, লোকাল নিয়ন্ত্রণ, ডেটা নিজের হাতে রাখা"। এটি কোনো পাবলিক ক্লাউড মিউজিক লাইব্রেরি বা মিডিয়া ডিস্ট্রিবিউশন পরিষেবা প্রদান করে না; অনলাইন ক্ষমতা তৃতীয় পক্ষের প্ল্যাটফর্মে ব্যবহারকারীর অ্যাকাউন্ট অনুমোদনের উপর নির্ভর করে।
প্রধান বৈশিষ্ট্যগুলো হলো:
- বহু-উৎস অনলাইন প্লেব্যাক: NetEase Cloud Music, Bilibili ও YouTube Music একীভূত করে; সার্চ, প্লেলিস্ট, ফেভারিট, অ্যালবাম, শিল্পীর বিবরণ ইত্যাদি এন্ট্রি সমর্থন করে এবং সোর্স পার্সিং, কিউ ম্যানেজমেন্ট ও ব্যর্থতা পুনরুদ্ধার প্রদান করে। NetEase-এ অনুমতি না থাকলে বা শুধুমাত্র প্রিভিউ ক্লিপ ফেরত দিলে অডিও কোয়ালিটি কমানোর চেষ্টা করা হয় এবং সেটিংস অনুযায়ী Bilibili বা লোকাল অডিও ব্যাকআপ ম্যাচ করা যায়।
- লোকাল-প্রথম ডেটা: প্লেব্যাক ক্যাশ, ডাউনলোড ফাইল, প্লেলিস্ট, ইতিহাস, প্লে পরিসংখ্যান ও সেটিংস ডিফল্টভাবে ডিভাইসে সংরক্ষিত থাকে; প্ল্যাটফর্ম কুকি, GitHub টোকেন, WebDAV পাসওয়ার্ড ইত্যাদি Android Keystore ও EncryptedSharedPreferences দিয়ে এনক্রিপ্ট করে রাখা হয়।
- ঐচ্ছিক স্ব-নির্মিত সিঙ্ক: লোকাল প্লেলিস্ট, ফেভারিট, সাম্প্রতিক প্লে, প্লে পরিসংখ্যান ইত্যাদি মেটাডেটা ব্যবহারকারীর নিজের GitHub রিপোজিটরি বা WebDAV রিমোট ফাইলে সিঙ্ক করা যায়; WorkManager দিয়ে বিলম্বিত ও পর্যায়ক্রমিক সিঙ্ক করা হয় এবং দ্বন্দ্ব মোকাবেলায় থ্রি-ওয়ে মার্জ ব্যবহার হয়।
- লিরিক্স অভিজ্ঞতা: লাইন-বাই-লাইন, শব্দ/অক্ষর-ভিত্তিক LRC, YRC/TTML লিরিক্সের হাইলাইট, অনুবাদ, ট্রান্সলিটারেশন, অফসেট, ক্লিক করে জাম্প, দীর্ঘ চাপ দিয়ে শেয়ার ও লিরিক্স কার্ড তৈরি সমর্থন করে; লিরিক্স এডিটর প্রদান করে, LRCLIB-এর মতো বাহ্যিক উৎস সংযোগ করা যায় এবং ফ্লোটিং লিরিক্স, স্ট্যাটাস বার লিরিক্স, SuperLyric, Lyricon ও ব্লুটুথ লিরিক্স আউটপুট সমর্থন করে।
- প্লেব্যাক ও সাউন্ড ইফেক্ট: Media3 ExoPlayer-ভিত্তিক; স্পিড, পিচ, ইকুয়ালাইজার, লাউডনেস এনহ্যান্সমেন্ট, ফেড-ইন/আউট, ক্রসফেড, ব্লুটুথ ডিসকানেক্টে পজ, অডিও ফোকাস নীতি এবং UAC1.0 ও সামঞ্জস্যপূর্ণ UAC2.0 Type I PCM ডিভাইসের জন্য USB এক্সক্লুসিভ প্লেব্যাক সমর্থন করে।
- ডাউনলোড ও লোকাল ম্যানেজমেন্ট: অ্যাপের ভিতরে ডাউনলোড একাধিক প্ল্যাটফর্মের অডিও, টাস্ক প্রগ্রেস, বাতিল/রিট্রাই, ব্রেকপয়েন্ট রিজিউম (সরাসরি HTTP, চাঙ্কড Range, HLS আলাদাভাবে পরিচালিত) সমর্থন করে; ডিফল্ট কনকারেন্সি 6, সর্বোচ্চ 8; SAF দিয়ে কাস্টম ডাউনলোড ডিরেক্টরি ও ফাইলনেম টেমপ্লেট সমর্থন করে; লোকাল অডিও বাহ্যিক শেয়ার, ডিভাইস স্ক্যান বা অনুমোদিত ফোল্ডার স্ক্যান দিয়ে আমদানি করা যায় এবং কাছাকাছি লিরিক্স ও কভার ফাইল শনাক্ত করে।
- একসাথে শোনা: Cloudflare Workers ও Durable Objects দিয়ে রুম, রোল, কিউ, প্লেব্যাক স্টেট ও লুপ/র্যান্ডম মোড সিঙ্ক প্রদান করে; ইনভাইট লিংক, ডিপ লিংক জয়েন, কাস্টম সার্ভার ও হোস্ট অফলাইনে পুনরুদ্ধার সমর্থন করে।
- ডায়াগনস্টিকস ও পুনরুদ্ধার: সেফ মোড, ক্র্যাশ লগ, ANR রেকর্ড, ডেভেলপার মোড ডিবাগ প্রোব এবং স্টোরেজ ব্যবহারের গ্রুপভিত্তিক পরিসংখ্যান ও পুনর্জন্মযোগ্য ক্যাশ পরিষ্কার প্রদান করে।
প্রকল্পটি সিঙ্গেল অ্যাক্টিভিটি + Compose আর্কিটেকচার ব্যবহার করে; মূল ইন্টারফেস NavHost ও ডাইনামিক বটম বার দিয়ে সাজানো, প্লেব্যাক পেজটি ওভারলে ফুলস্ক্রিন লেয়ার এবং মিনি প্লেয়ার সর্বদা থাকে। রিপোজিটরিতে সেটিংস আইটেমের KSP অটো-রেজিস্ট্রেশন, লিরিক্স পার্সিং ও UI সাবমডিউল, একসাথে শোনার সার্ভিস সাবমডিউল ইত্যাদি অন্তর্ভুক্ত। প্রকল্পটি শুধুমাত্র শেখা ও গবেষণার উদ্দেশ্যে ঘোষিত; এটি মিডিয়া কনটেন্ট, কী বা প্ল্যাটফর্ম সীমাবদ্ধতা এড়ানোর উপায় প্রদান করে না।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.