নির্ভরতা যোগ করুন
কোটলিন
implementation("androidx.media3:media3-ui:1.10.0")
গ্রুভি
implementation "androidx.media3:media3-ui:1.10.0"
প্লেয়ারভিউ
সবচেয়ে গুরুত্বপূর্ণ উপাদান হলো PlayerView , যা মিডিয়া প্লেব্যাকের জন্য একটি ভিউ। প্লেব্যাকের সময় PlayerView ভিডিও, ছবি, সাবটাইটেল এবং অ্যালবাম আর্ট প্রদর্শন করে, সেইসাথে প্লেব্যাক কন্ট্রোলগুলোও দেখায়।
PlayerView একটি setPlayer() মেথড আছে, যার মাধ্যমে null পাস করে Player ইনস্ট্যান্সগুলোকে সংযুক্ত বা বিচ্ছিন্ন করা যায়।
PlayerView ভিডিও, ছবি এবং অডিও—উভয় প্রকার প্লেব্যাকের জন্যই ব্যবহার করা যায়। এটি ভিডিও প্লেব্যাকের ক্ষেত্রে ভিডিও ও সাবটাইটেল, ছবি প্লেব্যাকের জন্য বিটম্যাপ রেন্ডার করে এবং অডিও ফাইলে মেটাডেটা হিসেবে অন্তর্ভুক্ত আর্টওয়ার্ক প্রদর্শন করতে পারে। আপনি এটিকে অন্য যেকোনো UI কম্পোনেন্টের মতোই আপনার লেআউট ফাইলে অন্তর্ভুক্ত করতে পারেন। উদাহরণস্বরূপ, নিম্নলিখিত XML ব্যবহার করে একটি PlayerView অন্তর্ভুক্ত করা যেতে পারে:
<androidx.media3.ui.PlayerView
android:id="@+id/player_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:show_buffering="when_playing"
app:show_shuffle_button="true"/>
উপরের কোড স্নিপেটটি থেকে বোঝা যায় যে PlayerView বেশ কিছু অ্যাট্রিবিউট প্রদান করে। এই অ্যাট্রিবিউটগুলো ব্যবহার করে ভিউ-এর আচরণ এবং এর বাহ্যিক রূপ ও অনুভূতি কাস্টমাইজ করা যায়। এই অ্যাট্রিবিউটগুলোর বেশিরভাগেরই সংশ্লিষ্ট সেটার মেথড রয়েছে, যা রানটাইমে ভিউ কাস্টমাইজ করতে ব্যবহার করা যেতে পারে। PlayerView এর ডকুমেন্টেশনে এই অ্যাট্রিবিউট এবং সেটার মেথডগুলো আরও বিস্তারিতভাবে তালিকাভুক্ত করা আছে।
আরও আরামদায়ক ইউজার এক্সপেরিয়েন্সের জন্য, keepScreenOn অ্যান্ড্রয়েড অ্যাট্রিবিউটটি যোগ করার কথা বিবেচনা করতে পারেন অথবা একটি ওয়েক লক সেট করতে পারেন , যদি আপনি ExoPlayer ব্যবহার করেন। ডিভাইসটিকে জাগিয়ে রাখে এমন অন্যান্য অ্যাকশনগুলো আপনি ব্যাকগ্রাউন্ড ওয়ার্ক পেজগুলোতে খতিয়ে দেখতে পারেন।
android:keepScreenOn="true"
লেআউট ফাইলে ভিউটি একবার ডিক্লেয়ার করা হয়ে গেলে, অ্যাক্টিভিটির onCreate মেথডে এটিকে খুঁজে বের করা যায়:
কোটলিন
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ... playerView = findViewById(R.id.player_view) }
জাভা
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... playerView = findViewById(R.id.player_view); }
যখন কোনো প্লেয়ারকে ইনিশিয়ালাইজ করা হয়, তখন setPlayer কল করে তাকে ভিউয়ের সাথে সংযুক্ত করা যায়:
কোটলিন
// Instantiate the player. val player = ExoPlayer.Builder(context).build() // Attach player to the view. playerView.player = player // Set the media item to be played. player.setMediaItem(mediaItem) // Prepare the player. player.prepare()
জাভা
// Instantiate the player. player = new ExoPlayer.Builder(context).build(); // Attach player to the view. playerView.setPlayer(player); // Set the media item to be played. player.setMediaItem(mediaItem); // Prepare the player. player.prepare();
প্লেয়ারকন্ট্রোলভিউ
PlayerControlView হলো PlayerView একটি সাব-ভিউ, যেখানে প্রোগ্রেস বার এবং প্লেব্যাক নিয়ন্ত্রণের জন্য বাটনগুলো থাকে। উল্লেখ্য যে, PlayerControlView PlayerView এর বাইরে একটি স্বতন্ত্র কম্পোনেন্ট হিসেবে ব্যবহারের জন্য তৈরি করা হয়নি। PlayerView তে অ্যাট্রিবিউট সেট করার মাধ্যমে (যা PlayerControlView তে পাস করা হবে) অথবা android:id="@id/exo_controller " সহ একটি কাস্টম কন্ট্রোলার প্রদান করে এটিকে কাস্টমাইজ করা যায়।
একটি পৃষ্ঠের ধরণ নির্বাচন করুন
PlayerView এর surface_type অ্যাট্রিবিউটটি আপনাকে ভিডিও প্লেব্যাকের জন্য ব্যবহৃত সারফেসের ধরন নির্ধারণ করতে দেয়। অনুমোদিত মানগুলো হলো surface_view , texture_view , spherical_gl_surface_view (যা স্ফেরিকাল ভিডিও প্লেব্যাকের জন্য একটি বিশেষ মান), video_decoder_gl_surface_view (যা এক্সটেনশন রেন্ডারার ব্যবহার করে ভিডিও রেন্ডারিংয়ের জন্য) এবং none (শুধুমাত্র অডিও প্লেব্যাকের জন্য)। কোন সারফেস টাইপটি বেছে নিতে হবে সে সম্পর্কে আরও তথ্য সারফেস পেজে পাওয়া যাবে।