Android TV पर डी-पैड नेविगेशन
Android TV के रिमोट कंट्रोल में D-पैड कंट्रोल होता है. यह कंट्रोल, निर्देश भेजता है, जो आपकी Activity
के dispatchKeyEvent(KeyEvent)
पर मुख्य इवेंट के तौर पर पहुंचते हैं. इन्हें 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
पर फ़ोकस करने का अनुरोध करना ज़रूरी है, ताकि वीडियो चलाने के कंट्रोल पर नेविगेट किया जा सके और विज्ञापनों को स्किप किया जा सके. Activity
के onCreate
में फ़ोकस करने का अनुरोध करें:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ... playerView.requestFocus() // ... }
Java
@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 }
)