ভিউ-ভিত্তিক UI দিয়ে শুরু করা

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

কোটলিন

implementation("androidx.media3:media3-ui:1.8.0")

খাঁজকাটা

implementation "androidx.media3:media3-ui:1.8.0"

প্লেয়ারভিউ

সবচেয়ে গুরুত্বপূর্ণ উপাদান হল PlayerView , মিডিয়া প্লেব্যাকের জন্য একটি ভিউ। PlayerView প্লেব্যাকের সময় ভিডিও, ছবি, সাবটাইটেল এবং অ্যালবাম আর্ট প্রদর্শন করে, সেইসাথে প্লেব্যাক নিয়ন্ত্রণও প্রদর্শন করে।

PlayerView Player ইনস্ট্যান্স সংযুক্ত এবং বিচ্ছিন্ন করার জন্য ( null পাস করে) একটি setPlayer() পদ্ধতি রয়েছে।

PlayerView ভিডিও, ছবি এবং অডিও উভয় প্লেব্যাকের জন্য ব্যবহার করা যেতে পারে। এটি ভিডিও প্লেব্যাকের ক্ষেত্রে ভিডিও এবং সাবটাইটেল রেন্ডার করে, ছবি প্লেব্যাকের জন্য বিটম্যাপ তৈরি করে এবং অডিও ফাইলগুলিতে মেটাডেটা হিসাবে অন্তর্ভুক্ত আর্টওয়ার্ক প্রদর্শন করতে পারে। আপনি এটি আপনার লেআউট ফাইলগুলিতে অন্যান্য UI উপাদানের মতো অন্তর্ভুক্ত করতে পারেন। উদাহরণস্বরূপ, একটি PlayerView নিম্নলিখিত XML সহ অন্তর্ভুক্ত করা যেতে পারে:

<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 ডকুমেন্টেশনে এই বৈশিষ্ট্যগুলি এবং সেটার পদ্ধতিগুলি আরও বিশদে তালিকাভুক্ত করা হয়েছে।

আরও আরামদায়ক ব্যবহারকারীর অভিজ্ঞতার জন্য, যদি আপনি ExoPlayer ব্যবহার করেন, তাহলে keepScreenOn Android অ্যাট্রিবিউট যোগ করার কথা বিবেচনা করুন অথবা ওয়েক লক সেট করার কথা বিবেচনা করুন। আপনি ব্যাকগ্রাউন্ড ওয়ার্ক পেজে ডিভাইসটিকে জাগ্রত রাখে এমন অন্যান্য ক্রিয়াগুলি তদন্ত করতে পারেন।

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 (শুধুমাত্র অডিও প্লেব্যাকের জন্য)। কোন পৃষ্ঠের ধরণটি বেছে নেবেন সে সম্পর্কে আরও তথ্য Surface পৃষ্ঠায় পাওয়া যাবে।