Android TV의 D패드 탐색
Android TV의 리모컨에는 Activity
의 dispatchKeyEvent(KeyEvent)
에 키 이벤트로 도착하는 명령어를 전송하는 D패드 컨트롤이 있습니다. 다음은 PlayerView
에 위임해야 합니다.
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
의 포커스를 요청하는 것이 중요합니다. Activity
의 onCreate
에서 포커스를 요청하는 것이 좋습니다.
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 }
)