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

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

কোটলিন

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

গ্রোভি

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

প্লেয়ারভিউ

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

PlayerView একটি setPlayer() মেথড আছে Player ইনস্ট্যান্স সংযুক্ত এবং বিচ্ছিন্ন করার জন্য ( null পাস করে)।

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

একবার লেআউট ফাইলে ভিউ ঘোষণা করা হলে, এটি কার্যকলাপের 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 (শুধুমাত্র অডিও প্লেব্যাকের জন্য)। কোন সারফেস টাইপ বাছাই করতে হবে সে সম্পর্কে আরও তথ্য সারফেস পেজে পাওয়া যাবে।