Я работаю над библиотекой Android, которая представляет собой простой видеоплеер, упаковывающий ExoPlayer.При использовании Amazon Fire TV я могу перемещаться по своему приложению с помощью пульта дистанционного управления (указатель направления переключается между элементами в моем представлении) и управлять плеером (кнопка воспроизведения / паузы переключает состояние воспроизведения, а кнопки поиска работают, как и предполагалось).... до тех пор, пока отображается панель управления
Примерно через 3 секунды панель управления автоматически скрывается, и пульт ДУ перестает отвечать на запросы
Есть ли подходящее исправление дляэто или мне нужно вручную определять нажатия клавиш на пульте и показывать панель управления?Я чувствую, что это то, что должен был разрешить порт Amazon ExoPlayer
Обновление
Я расширил класс PlayerView
и переопределил метод dispatchKeyEvent
, чтобы увидеть то, что было замечено:
public class Test extends PlayerView {
@Override
public boolean dispatchKeyEvent(KeyEvent event)
{
Log.debug("***** KEY EVENT: " + String.valueOf(event.getKeyCode()) + " *********");
return true;
}
}
Сделав это и нажав кнопку воспроизведения на пульте дистанционного управления, я заметил:
- Когда была видна панель управления,
KeyEvent
со значением keyCode
85
было отправлено - Когда панель управления была скрыта, этот метод никогда не срабатывал
Я просмотрел методы, доступные для PlayerView
, чтобы посмотреть, есть либыли полезны, но ничего не стоило:
setControllerAutoShow
- определяет, отображается ли панель управления при первом запуске видео setControllerHideDuringAds
- определяет, видна ли панель управления во времяобъявление воспроизводится setControllerHideOnTouch
- не имеет отношения к FireTV (нет событий касания), но скрывает панель управления, если вы нажимаете видео setControllerHideTimeoutMs
- может задержать скрытие панели управления,но иначе не позволяет мне вернуть его после этогоскрыт showController
- может принудительно раскрыть контроллер в коде, что позволяет мне приостанавливать видео, но я, не имея возможности видеть события нажатия клавиш, не могу правильно вызвать это при нажатии кнопкипульт дистанционного управления
В конечном счете, я просто хочу, чтобы он вел себя как приложения Netflix или Hulu - панель управления исчезает через несколько секунд бездействия, но если вы нажмете кнопку паузы, панель управления вернется.