Bất cứ khi nào ứng dụng của bạn phát một tệp nội dung nghe nhìn, người dùng sẽ có thể tạm dừng và tiếp tục phát bằng cách nhấn Phím cách trên bàn phím vật lý.
Phản hồi sự kiện nhấn phím
Các ứng dụng dựa trên Jetpack Compose hoặc khung hiển thị phản hồi với thao tác nhấn phím trên bàn phím theo những cách tương tự như sau: ứng dụng theo dõi các sự kiện nhấn phím, lọc ra các sự kiện đó và phản hồi một số thao tác nhấn phím, chẳng hạn như thao tác nhấn Phím cách.
1. Theo dõi các sự kiện bàn phím
Compose
Với Jetpack Compose, hãy sử dụng đối tượng sửa đổi onPreviewKeyEvent
hoặc onKeyEvent
trong bố cục quản lý thao tác nhấn phím:
Column(modifier = Modifier.onPreviewKeyEvent { event ->
if (event.type == KeyEventType.KeyUp) {
...
}
...
})
hoặc
Column(modifier = Modifier.onKeyEvent { event ->
if (event.type == KeyEventType.KeyUp) {
...
}
...
})
Khung hiển thị
Trong một hoạt động trên ứng dụng của bạn, hãy ghi đè phương thức onKeyUp()
:
Kotlin
override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean { ... }
Java
@Override public boolean onKeyUp(int keyCode, KeyEvent event) { ... }
Phương thức này được gọi mỗi khi bạn nhả một phím đã nhấn ra. Do đó, phương thức này sẽ kích hoạt chính xác một lần cho mỗi lần nhấn phím.
2. Lọc các thao tác nhấn Phím cách
Trong phương thức đối tượng sửa đổi onPreviewKeyEvent
và onKeyEvent
hoặc phương thức onKeyUp()
của thành phần hiển thị trong Compose, hãy lọc KeyEvent.KEYCODE_SPACE
để gửi đúng sự kiện đến thành phần nội dung nghe nhìn:
Compose
Column(modifier = Modifier.onPreviewKeyEvent { event ->
if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
...
}
...
})
hoặc
Column(modifier = Modifier.onKeyEvent { event ->
if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
...
}
...
})
Khung hiển thị
Kotlin
if (keyCode == KeyEvent.KEYCODE_SPACE) { togglePlayback() return true } return false
Java
if (keyCode == KeyEvent.KEYCODE_SPACE) { togglePlayback(); return true; } return false;
Điểm chính
KEYCODE_SPACE
: Hằng số mã phím cho Phím cách.
Compose
onPreviewKeyEvent
: Đối tượng sửa đổi cho phép một thành phần chặn các sự kiện liên quan đến phím phần cứng khi thành phần đó (hoặc một trong các thành phần con) được lấy làm tâm điểm.onKeyEvent
: Tương tự nhưonPreviewKeyEvent
, đối tượng sửa đổi cho phép một thành phần chặn các sự kiện liên quan đến phím phần cứng khi thành phần đó (hoặc một trong các thành phần con) được lấy làm tâm điểm.
Khung hiển thị
onKeyUp()
: Trình xử lý sự kiện được gọi khi một phím được nhả ra và không được khung hiển thị xử lý trong một hoạt động (chẳng hạn nhưTextView
).
Kết quả
Ứng dụng của bạn hiện có thể phản hồi khi người dùng nhấn phím Phím cách để tạm dừng và tiếp tục phát một video hoặc nội dung nghe nhìn khác.