Android TV

Android TV'de d-pad ile gezinme

Android TV'nin uzaktan kumandasında, Activity uygulamanızın dispatchKeyEvent(KeyEvent) öğesine tuş etkinliği olarak ulaşan komutlar gönderen bir d-pad kontrolü bulunur. PlayerView'e yetki verilmesi gerekenler:

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 öğesinin onCreate bölümünde odaklanma isteğinde bulunabilirsiniz:

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 öğesini odaklanabilir hale getirmeniz ve değiştirici parametresini AndroidView öğesine uygun şekilde ileterek etkinliği devretmeniz gerekir:

AndroidView(
  modifier = modifier.focusable().onKeyEvent { playerView.dispatchKeyEvent(it.nativeKeyEvent) },
  factory = { playerView },
)

Player composable'ını kullanma

media3-ui-compose-material3 kitaplığındaki Player composable'ını kullanırsanız d-pad ile gezinme varsayılan olarak desteklenir. Player ve PlayerDefaults bileşenleri, bileşenleri d-pad ile gezen otomatik bir FocusRequester örneğine sahiptir. Bu nedenle, odaklanma ve tuş etkinliklerini işlemek için ek koda veya Modifier.focusRequester'ye ihtiyacınız yoktur:

PlayerDefaults üst, orta ve alt alanlara yerleştirilmiştir. Bu sayede, d-pad ile gezinme sezgisel bir deneyim sunar. Bu alanlarda yapılan ö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, odaklamayı kullanıma hazır şekilde yönettiğini unutmayın.