Android TV

Steuerkreuz-Navigation auf Android TV

Die Fernbedienung von Android TV hat ein Steuerkreuz, das Befehle sendet, die als Tastenereignisse an dispatchKeyEvent(KeyEvent) Ihrer Activity gesendet werden. Diese müssen an die PlayerView delegiert werden:

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

Es ist wichtig, den Fokus für die PlayerView anzufordern, um die Wiedergabesteuerung zu verwenden und Werbung zu überspringen. Sie können den Fokus in onCreate der Activity anfordern:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  // ...
  playerView.requestFocus()
  // ...
}

Java

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  // ...
  playerView.requestFocus();
  // ...
}

Wenn Sie Compose auf Android TV verwenden, müssen Sie die AndroidView fokussierbar machen und das Ereignis delegieren, indem Sie den Modifikatorparameter entsprechend an die AndroidView übergeben:

AndroidView(
  modifier = modifier.focusable().onKeyEvent { playerView.dispatchKeyEvent(it.nativeKeyEvent) },
  factory = { playerView },
)