التنقّل باستخدام لوحة التحكّم الاتجاهية على 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 }
)