Android TV

Android TV-তে ডি-প্যাড নেভিগেশন

Android TV-এর রিমোট কন্ট্রোলে একটি ডি-প্যাড কন্ট্রোল থাকে যা কমান্ড পাঠায়। এই কমান্ড আপনার Activity-এর dispatchKeyEvent(KeyEvent)-এ কী ইভেন্ট হিসেবে পৌঁছায়। PlayerView-কে এগুলি ডেলিগেট করতে হবে:

Kotlin

override fun dispatchKeyEvent(event: KeyEvent?): Boolean {
  return playerView.dispatchKeyEvent(event!!) || super.dispatchKeyEvent(event)
}

জাভা

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
  return playerView.dispatchKeyEvent(event) || super.dispatchKeyEvent(event);
}

প্লেব্যাক কন্ট্রোল নেভিগেট করা এবং বিজ্ঞাপন এড়িয়ে যাওয়ার জন্য PlayerView-এর উপর ফোকাস করার অনুরোধ করা গুরুত্বপূর্ণ। Activity-এর onCreate-এ ফোকাস করার জন্য অনুরোধ করার কথা বিবেচনা করুন:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  // ...
  playerView.requestFocus()
  // ...
}

জাভা

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  // ...
  playerView.requestFocus();
  // ...
}

আপনি Android TV-তে Compose ব্যবহার করলে, আপনাকে AndroidView ফোকাসযোগ্য করতে হবে এবং মডিফায়ার প্যারামিটারটি AndroidView-এ পাস করে ইভেন্টটি ডেলিগেট করতে হবে:

AndroidView(
  modifier = modifier.focusable().onKeyEvent { playerView.dispatchKeyEvent(it.nativeKeyEvent) },
  factory = { playerView },
)

Player কম্পোজেবল ব্যবহার করুন

আপনি media3-ui-compose-material3 লাইব্রেরি থেকে Player কম্পোজেবল ব্যবহার করলে, ডি-প্যাড নেভিগেশন ডিফল্ট হিসেবে কাজ করে। Player এবং PlayerDefaults কম্পোনেন্টে একটি অটোমেটিক FocusRequester ইনস্ট্যান্স আছে যা ডি-প্যাডের মাধ্যমে কম্পোনেন্টগুলি ট্রাভার্স করে, তাই ফোকাস এবং কী ইভেন্টগুলি ম্যানেজ করার জন্য আপনার অতিরিক্ত কোড বা Modifier.focusRequester-এর প্রয়োজন নেই:

PlayerDefaults উপরে, মাঝখানে এবং নিচে সাজানো থাকে যাতে ডি-প্যাড নেভিগেশন সহজ মনে হয়। এই স্লটগুলির জন্য কোনও কাস্টমাইজেশন এবং ওভাররাইডের জন্য, নিশ্চিত করুন যে আপনি একটি ভাল-নেভিগেবল কম্পোনেন্ট প্রদান করেছেন। মনে রাখবেন যে বেশিরভাগ Compose কম্পোনেন্ট, যেমন Slider বা Row যাতে বোতাম থাকে, সেগুলি আউট-অফ-দ্য-বক্স ফোকাস ম্যানেজ করে।