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 যাতে বোতাম থাকে, সেগুলি আউট-অফ-দ্য-বক্স
ফোকাস ম্যানেজ করে।