Android TV

Android TV 上的方向鍵導覽

Android TV 的遙控器設有 D-pad 控制項,可傳送指令,並以按鍵事件傳送至 ActivitydispatchKeyEvent(KeyEvent)。這些權限必須委派給 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);
}

請求 PlayerView 的焦點,對於瀏覽播放控制項和略過廣告至關重要。建議您在 ActivityonCreate 中要求焦點:

Kotlin

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

Java

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

如果您在 Android TV 上使用 Compose,就必須讓 AndroidView 可聚焦,並且透過適當方式將修飾符參數傳遞至 AndroidView,以委派事件:

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