Tạm dừng và tiếp tục phát nội dung nghe nhìn bằng Phím cách trên bàn phím bên ngoài

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 onPreviewKeyEventonKeyEvent 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

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.