Android TV

ناوبری D-pad در Android TV

کنترل از راه دور Android TV دارای یک کنترل D-pad است که دستوراتی را ارسال می کند که به عنوان رویدادهای کلیدی در dispatchKeyEvent(KeyEvent) Activity شما می رسد. این موارد باید به 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 برای پیمایش کنترل‌های پخش و رد کردن تبلیغات مهم است. درخواست تمرکز در onCreate Activity را در نظر بگیرید:

کاتلین

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  // ...
  playerView.requestFocus()
  // ...
}

جاوا

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // ...
    playerView.requestFocus();
    // ...
}

اگر از Compose در Android TV استفاده می‌کنید، باید AndroidView قابل تمرکز کنید و رویداد را با انتقال پارامتر اصلاح‌کننده به AndroidView بر این اساس واگذار کنید:

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

،

ناوبری D-pad در Android TV

کنترل از راه دور Android TV دارای یک کنترل D-pad است که دستوراتی را ارسال می کند که به عنوان رویدادهای کلیدی در dispatchKeyEvent(KeyEvent) Activity شما می رسد. این موارد باید به 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 برای پیمایش کنترل‌های پخش و رد کردن تبلیغات مهم است. درخواست تمرکز در onCreate Activity را در نظر بگیرید:

کاتلین

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  // ...
  playerView.requestFocus()
  // ...
}

جاوا

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // ...
    playerView.requestFocus();
    // ...
}

اگر از Compose در Android TV استفاده می‌کنید، باید AndroidView قابل تمرکز کنید و رویداد را با انتقال پارامتر اصلاح‌کننده به AndroidView بر این اساس واگذار کنید:

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