Android TV

Điều hướng bằng D-pad trên Android TV

Điều khiển từ xa của Android TV có một nút điều khiển D-pad gửi các lệnh đến dưới dạng sự kiện phím tại dispatchKeyEvent(KeyEvent) của Activity. Bạn cần uỷ quyền các quyền này cho PlayerView:

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

Việc yêu cầu tiêu điểm cho PlayerView là rất quan trọng để điều hướng các nút điều khiển phát và bỏ qua quảng cáo. Hãy cân nhắc yêu cầu tiêu điểm trong onCreate của Activity:

Kotlin

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

Java

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

Nếu đang sử dụng Compose trên Android TV, bạn cần đặt AndroidView thành có thể lấy tiêu điểm và uỷ quyền sự kiện bằng cách truyền tham số đối tượng sửa đổi vào AndroidView tương ứng:

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