التنقّل باستخدام لوحة المفاتيح الاتجاهية على Android TV
يحتوي جهاز التحكّم عن بُعد في Android TV على لوحة مفاتيح رباعية الاتجاه ترسل أوامر تصل كأحداث رئيسية إلى dispatchKeyEvent(KeyEvent) من Activity. يجب تفويض هذه المهام إلى PlayerView:
Kotlin
override fun dispatchKeyEvent(event: KeyEvent?): Boolean{ return playerView.dispatchKeyEvent(event!!) || super.dispatchKeyEvent(event) }
Java
@Override public boolean dispatchKeyEvent(KeyEvent event) { return playerView.dispatchKeyEvent(event) || super.dispatchKeyEvent(event); }
يُعدّ طلب التركيز على PlayerView مهمًا للتنقّل بين عناصر التحكّم في التشغيل وتخطّي الإعلانات. ننصحك بطلب التركيز في onCreate من Activity باتّباع الخطوات التالية:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ... playerView.requestFocus() // ... }
Java
@Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... playerView.requestFocus(); // ... }
إذا كنت تستخدم Compose على Android TV، عليك جعل AndroidView قابلاً للتركيز وتفويض الحدث من خلال تمرير مَعلمة المعدِّل إلى AndroidView على النحو التالي:
AndroidView(
modifier = modifier
.focusable()
.onKeyEvent { playerView.dispatchKeyEvent(it.nativeKeyEvent) },
factory = { playerView }
)