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 işlemlerin PlayerView için yetkilendirilmesi gerekir:
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 içinde onCreate odaklanmasını isteyebilirsiniz:
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 yuvalarda 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.