При реализации приложения firetv с использованием Leanback и exoplayer я использовал LeanbackPlayerAdapter
, предоставленный exoplayer. Я также использую VideoMediaPlayerGlue
, который расширяет PlaybackTransportControlGlue
. Он идентичен этому: https://github.com/android/tv-samples/blob/master/LeanbackShowcase/app/src/main/java/androidx/leanback/leanbackshowcase/app/media/VideoMediaPlayerGlue.java . Ниже приведен код, который я использую для запуска всего. Теперь по какой-то непонятной причине начинается воспроизведение и все управление firetv работает на пульте. Однако наложения элементов управления нигде не видно. Еще один момент, который я хотел бы отметить, это то, что когда вы нажимаете d-pad вниз, вы можете услышать звук тиканья FireTV, поэтому у меня есть основания полагать, что элементы управления активны, но находятся за поверхностью видео. Например, если я нажимаю, когда курсор находится на кнопке «нравится» или «не нравится», на экране отображается тост «нравится» или «не нравится».
LeanbackPlayerAdapter playerAdapter = new LeanbackPlayerAdapter(context, player, 16);
playerAdapter.setPlaybackPreparer(this);
playerAdapter.setControlDispatcher(null);
playerAdapter.setCallback(null);
mMediaPlayerGlue = new VideoMediaPlayerGlue((Activity) context, playerAdapter);
mMediaPlayerGlue.setHost(mGlue);
mMediaPlayerGlue.setTitle("title");
mMediaPlayerGlue.setSubtitle("subtitle");
player.prepare(mediaSource, !haveStartPosition, false);
playWhenReady(mMediaPlayerGlue);