Android TV

Android TV의 D패드 탐색

Android TV의 리모컨에는 ActivitydispatchKeyEvent(KeyEvent)에 키 이벤트로 도착하는 명령어를 전송하는 D패드 컨트롤이 있습니다. 다음은 PlayerView에 위임해야 합니다.

Kotlin자바
override fun dispatchKeyEvent(event: KeyEvent?): Boolean{
  return playerView.dispatchKeyEvent(event!!) || super.dispatchKeyEvent(event)
}
@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()
  // ...
}
@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 }
)