Я разрабатываю пользовательский интерфейс поверх ExoPlayer, и я заметил, что элементы управления (PlaybackControlView
) скрываются, когда я касаюсь экрана, а не когда я нажимаю.Exoplayer hide PlaybackControlView onClick (not onTouch)
Я хотел изменить на клик и проверить, как я могу изменить прослушиватель событий, но до сих пор не мог найти простого решения. Я проверил источник SimpleExoPlayerView.java
и я заметил, что это на самом деле зашиты:
@Override
public boolean onTouchEvent(MotionEvent ev) {
if (!useController || player == null || ev.getActionMasked() != MotionEvent.ACTION_DOWN) {
return false;
}
if (controller.isVisible()) {
controller.hide();
} else {
maybeShowController(true);
}
return true;
}
До сих пор я мог думать о двух решений. Один из них заключается в том, чтобы изменить исходный код ExoPlayer, но мне это не нравится, так как мне придется делать изменения каждый раз, когда я обновляю ExoPlayer.
Второе решение, о котором я мог думать, - это просто попытаться обработать его самостоятельно, например, чтобы добавить моих собственных слушателей, а также показать и скрыть элементы управления самостоятельно. Я еще не пробовал, но это кажется возможным.
Есть ли еще лучшее решение, например, переопределение слушателей и т. Д.?
Обновление: Я использую пользовательский интерфейс раздувая exo_playback_control_view.xml
спасибо. Мне понравилось, что вы предлагаете здесь, и это работает. Поэтому в этом случае я фактически использую второй метод, в котором я отменяю действие по умолчанию и обрабатываю себя, например, на onClick. – AMD
Я рад, что вам это нравится. Пожалуйста, примите это, если это хороший ответ на ваш вопрос :) –
Ваше решение правильно останавливает действия ontouch, однако оно не работает при использовании onClick – AMD