Android TV

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 }
)