Android TV'de D-pad ile gezinme
Android TV'nin uzaktan kumandasında, Activity cihazınızın dispatchKeyEvent(KeyEvent) bölümüne önemli etkinlikler olarak ulaşan komutlar gönderen bir D-pad kontrolü bulunur. Bu görevler PlayerView adlı kullanıcıya devredilmelidir:
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 için odak istemek, oynatma kontrollerinde gezinmek ve reklamları atlamak için önemlidir. Activity'nin onCreate bölümünde odaklanma isteğinde bulunmayı deneyin:
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'de Compose kullanıyorsanız AndroidView
focusable yapmanız ve değiştirici parametreyi AndroidView'ye ileterek etkinliği temsilciye atamanız gerekir:
AndroidView( modifier = modifier.focusable().onKeyEvent { playerView.dispatchKeyEvent(it.nativeKeyEvent) }, factory = { playerView }, )
Player composable'ını kullanma
media3-ui-compose-material3 kitaplığındaki Player composable'ı kullanıyorsanız D-pad ile gezinme varsayılan olarak desteklenir. Player ve
PlayerDefaults bileşenlerinde, bileşenleri D-pad ile dolaşan otomatik bir FocusRequester örneği bulunur. Bu nedenle, odak ve tuş etkinliklerini işlemek için ek koda veya Modifier.focusRequester öğesine ihtiyacınız yoktur:
PlayerDefaults, D-pad ile gezinme işleminin sezgisel olması için üst, orta ve alt yuvalara yerleştirilmiştir. Bu alanlarda yapılan tüm özelleştirmeler ve geçersiz kılmalar için kolayca gezinilebilen bir bileşen sağladığınızdan emin olun. Düğme içeren Slider veya Row gibi çoğu Compose bileşeninin, odaklanmayı kutudan çıktığı gibi yönettiğini unutmayın.