Ogni volta che la tua app riproduce un file multimediale, gli utenti devono essere in grado di mettere in pausa e riprendere la riproduzione premendo la barra spaziatrice su una tastiera fisica.
Rispondere agli eventi di pressione dei tasti
Le app basate su Jetpack Compose o sulle visualizzazioni rispondono alla pressione dei tasti della tastiera in modo simile: l'app ascolta gli eventi di pressione dei tasti, li filtra e risponde alle pressioni dei tasti, ad esempio la pressione della barra spaziatrice.
1. Ascoltare gli eventi della tastiera
Scrivi
Con Jetpack Compose, utilizza il modificatore onPreviewKeyEvent o
onKeyEvent all'interno del layout che gestisce la sequenza di tasti:
Column(modifier = Modifier.onPreviewKeyEvent { event ->
if (event.type == KeyEventType.KeyUp) {
...
}
...
})
o
Column(modifier = Modifier.onKeyEvent { event ->
if (event.type == KeyEventType.KeyUp) {
...
}
...
})
Visualizzazioni
In un'attività della tua app, esegui l'override del metodo onKeyUp():
Kotlin
override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean { ... }
Java
@Override public boolean onKeyUp(int keyCode, KeyEvent event) { ... }
Il metodo viene richiamato ogni volta che viene rilasciato un tasto premuto, quindi viene attivato esattamente una volta per ogni tasto premuto.
2. Filtrare le pressioni della barra spaziatrice
All'interno dei metodi di modifica onPreviewKeyEvent e onKeyEvent o
delle visualizzazioni onKeyUp(), filtra in base a KeyEvent.KEYCODE_SPACE per inviare
l'evento corretto al componente multimediale:
Scrivi
Column(modifier = Modifier.onPreviewKeyEvent { event ->
if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
...
}
...
})
o
Column(modifier = Modifier.onKeyEvent { event ->
if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
...
}
...
})
Visualizzazioni
Kotlin
if (keyCode == KeyEvent.KEYCODE_SPACE) { togglePlayback() return true } return false
Java
if (keyCode == KeyEvent.KEYCODE_SPACE) { togglePlayback(); return true; } return false;
Punti chiave
KEYCODE_SPACE: costante del codice tasto per la barra spaziatrice.
Scrivi
onPreviewKeyEvent: modificatore che consente a un componente di intercettare gli eventi dei tasti hardware quando è attivo (o uno dei suoi elementi secondari).onKeyEvent: simile aonPreviewKeyEvent, modificatore che consente a un componente di intercettare gli eventi dei tasti hardware quando il componente (o uno dei relativi elementi secondari) è attivo.
Visualizzazioni
onKeyUp(): il gestore di eventi viene chiamato quando un tasto viene rilasciato e non gestito da una visualizzazione (ad esempioTextView) all'interno di un'attività.
Risultati
Ora la tua app può rispondere alle pressioni del tasto Barra spaziatrice per mettere in pausa e riprendere un video o altri contenuti multimediali.