Compose-ভিত্তিক UI ব্যবহার শুরু করা

নির্ভরতা যোগ করুন

Media3 লাইব্রেরিতে দুটি Jetpack Compose-ভিত্তিক UI মডিউল অন্তর্ভুক্ত আছে। আপনাকে দুটিই যোগ করতে হবে না কারণ Material3-এরটি কোরটির উপর নির্ভর করে।

Kotlin

// Include only one of the following dependencies
implementation("androidx.media3:media3-ui-compose:1.11.1")
implementation("androidx.media3:media3-ui-compose-material3:1.11.1")

গ্ৰুভি

// Include only one of the following dependencies
implementation "androidx.media3:media3-ui-compose:1.11.1"
implementation "androidx.media3:media3-ui-compose-material3:1.11.1"

আমরা আপনাকে Compose-ফার্স্ট ফ্যাশনে অ্যাপ ডেভেলপ করতে বা Views ব্যবহার করা থেকে মাইগ্রেট করতে বিশেষভাবে উৎসাহিত করি।

সম্পূর্ণরূপে কম্পোজ ডেমো অ্যাপ

media3-ui-compose লাইব্রেরিতে আউট-অফ-দ্য-বক্স কম্পোজেবল (যেমন বোতাম, ইন্ডিকেটর, ছবি বা ডায়ালগ) অন্তর্ভুক্ত না থাকলেও, আপনি ডেমো অ্যাপ খুঁজে পেতে পারেন যা সম্পূর্ণভাবে Compose-এ লেখা এবং যা AndroidView-এ PlayerView র‍্যাপ করার মতো কোনও ইন্টারঅপারেবিলিটি সমাধান এড়িয়ে যায়। ডেমো অ্যাপটি media3-ui-compose মডিউল এবং Compose Material3 লাইব্রেরি থেকে UI স্টেট হোল্ডার ক্লাস ব্যবহার করে।

আমার কোন লাইব্রেরি প্রয়োজন?

আপনার প্রয়োজনীয় কাস্টমাইজেশনের লেভেলের উপর নির্ভর করে, আপনি দুটি Media3 Compose লাইব্রেরির মধ্যে থেকে বেছে নিতে পারবেন। পার্থক্য বুঝতে, UI স্টেট প্রোডাকশন পাইপলাইন সম্পর্কে ভাবলে সুবিধা হবে: Business logic → UI logic → UI.

আপনার UI কম্পোনেন্টের উপর সম্পূর্ণ কন্ট্রোল পেতে media3-ui-compose ব্যবহার করুন।

এই লাইব্রেরি Business logic → UI logic কানেকশন প্রদান করে। এতে PlayerSurface ও ContentFrame-এর মতো ফাউন্ডেশনাল কম্পোনেন্ট এবং স্টেট হোল্ডার ক্লাস (যেমন, PlayPauseButtonState, CurrentMediaItemState, PlaylistState, ErrorState) থাকে যা Player স্টেটকে UI স্টেটে পরিবর্তন করে।

এই লাইব্রেরি ব্যবহার করার জন্য প্রস্তুত মেটেরিয়াল ডিজাইন কম্পোনেন্ট প্রদান করে না। আপনার নিজস্ব UI কম্পোনেন্ট তৈরি ও স্টাইল করার দায়িত্ব আপনার। এটি আপনাকে লুক ও ফিলের উপর সর্বাধিক নিয়ন্ত্রণ দেয়, আপনার কাছে অত্যন্ত কাস্টম ডিজাইন সিস্টেম থাকলে এটি আদর্শ।

মেটেরিয়াল ডিজাইনের সাথে আরও দ্রুত ইন্টিগ্রেশনের জন্য media3-ui-compose-material3 ব্যবহার করুন।

এই লাইব্রেরি পাইপলাইনের শেষ UI অংশ প্রদান করে। এটি media3-ui-compose-এর উপর নির্ভর করে এবং এতে আগে থেকে তৈরি কম্পোজেবল ফাংশন অন্তর্ভুক্ত থাকে যা Material3 কম্পোনেন্ট দিয়ে স্টাইল করা হয়, যার মধ্যে Player এবং MiniController কম্পোজেবল অন্তর্ভুক্ত। Player কম্পোজেবল ভিডিও, কন্ট্রোল এবং প্রগ্রেস বারের সাথে একটি ব্যাপক মিডিয়া প্লেব্যাক অভিজ্ঞতা অফার করে, যা আপনি PlayerDefaults ব্যবহার করে আরও কাস্টমাইজ করতে পারেন। MiniController কম্পোজেবল, বর্তমান মিডিয়া আইটেম সম্পর্কে তথ্য দেখানোর সময় প্লেয়ার কন্ট্রোল করার জন্য কম্প্যাক্ট অ্যাফর্ডেন্স প্রদান করে। এর ফলে আপনাকে নিজের বোতাম ও অন্যান্য UI এলিমেন্ট একেবারে গোড়া থেকে তৈরি করতে হয় না। আপনি এখনও এইসব কম্পোনেন্টের থিম, রঙ এবং আইকন কাস্টমাইজ করতে পারেন, তবে মূল বাস্তবায়ন আপনার জন্য প্রদান করা হয়েছে।

এক ঝলকে

ফিচার media3-ui-compose media3-ui-compose-material3
UI কম্পোনেন্ট PlayerSurface এবং ContentFrame-এর মতো ফাউন্ডেশনাল এলিমেন্ট, তবে প্রি-স্টাইল করা বোতাম বা কন্ট্রোল নেই। Player এবং MiniController কম্পোজেবল এবং PlayPauseButton, SeekBackButton, PositionAndDurationText, ErrorText ইত্যাদির মতো আগে থেকে তৈরি, Material3-স্টাইল কম্পোজেবলের সম্পূর্ণ সেট প্রদান করে।
স্টেট ম্যানেজমেন্ট লজিক ম্যানেজ করার জন্য remember...State হোল্ডার প্রদান করে। ইন্টার্নালি স্টেট ম্যানেজ করে, তবে প্রয়োজন হলে আপনি এখনও স্টেট হোল্ডার অ্যাক্সেস করতে পারবেন।
নির্ভরতা androidx.compose.foundation media3-ui-compose, androidx.compose.material3, com.google.android.material
প্রাথমিক ব্যবহারের কেস কাস্টম ডিজাইন সিস্টেমের মাধ্যমে প্লেয়ার UI তৈরি করা। লুক ও ফিলের উপর সম্পূর্ণ নিয়ন্ত্রণ। Material Design 3 নির্দেশিকা মেনে চলে এমন প্লেয়ার UI দ্রুত তৈরি করা।