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