অ্যান্ড্রয়েড টিভিতে ডি-প্যাড নেভিগেশন
অ্যান্ড্রয়েড টিভির রিমোট কন্ট্রোলে একটি ডি-প্যাড কন্ট্রোল আছে যা আপনার Activity dispatchKeyEvent(KeyEvent) ইভেন্টে কী ইভেন্ট হিসেবে কমান্ড পাঠায়। এগুলোকে PlayerView এর কাছে ডেলিগেট করতে হবে:
কোটলিন
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 ইভেন্টে ফোকাস অনুরোধ করার কথা বিবেচনা করুন:
কোটলিন
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ... playerView.requestFocus() // ... }
জাভা
@Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... playerView.requestFocus(); // ... }
আপনি যদি অ্যান্ড্রয়েড টিভিতে কম্পোজ ব্যবহার করেন, তাহলে আপনাকে 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 উপরের, মাঝের এবং নিচের স্লটে সাজানো থাকে, যাতে ডি-প্যাড নেভিগেশন স্বজ্ঞাত মনে হয়। এই স্লটগুলোতে যেকোনো কাস্টমাইজেশন এবং ওভাররাইডের জন্য, নিশ্চিত করুন যে আপনি একটি সহজে নেভিগেটযোগ্য কম্পোনেন্ট প্রদান করছেন। উল্লেখ্য যে, বেশিরভাগ কম্পোজ কম্পোনেন্ট, যেমন Slider বা বাটনযুক্ত Row , স্বয়ংক্রিয়ভাবে ফোকাস পরিচালনা করে।