Android TV의 D패드 탐색
Android TV의 리모컨에는 Activity의 dispatchKeyEvent(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의 포커스를 요청하는 것은 재생 컨트롤을 탐색하고 광고를 건너뛰는 데 중요합니다. Activity의 onCreate에서 포커스를 요청하는 것을 고려하세요.
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 }
)