Пользовательский TimeBar в ExoPlayer

Я хотел бы создать пользовательскую шкалу времени в exoplayer с помощью PlayerView, которая:

  1. пользователь не может перетаскивать, показывает только ход выполнения в видео

ОБНОВЛЕНИЕ: Итак, я смог отключить перетаскивание, установив для параметра touch_target_height значение 0dp!

  1. позволяет базовому PlayerView быть кликабельным (я теряю кликабельность PlayerView из-за контроллера сверху)
  2. всегда отображается на поверхности PlayerView (пользовательский контроллер появляется только при однократном нажатии PlayerView)

Я попытался использовать DefaultTimeBar в пользовательском макете контроллера, но не смог отключить перетаскивание панели времени. Кроме того, контроллер отображается только при нажатии. Я пробовал следующее:

В XML-компонент макета PlayerView добавлено следующее, чтобы отключить скрытие контроллера, но для отображения контроллера по-прежнему требуется щелкнуть PlayerView в первый раз.

app:show_timeout="0"
app:hide_on_touch="false"

Мне нужно зафиксировать событие onClick в PlayerView, что я мог делать, пока не представил собственный макет контроллера. У меня есть PlayerView как фокусируемый, так и интерактивный

android:focusable="true"
android:clickable="true"

Кроме того, пытаясь отключить перетаскивание панели времени в DefaultTimeBar, я сделал следующее, но он только удаляет ползунок (или ползунок) с панели времени, а не отключает перетаскивание:

app:scrubber_enabled_size="0dp"
app:scrubber_disabled_size="0dp"
app:scrubber_dragged_size="0dp"

Любые идеи о том, как сделать эти 3 вещи?

Спасибо,

AB


person Abhishek Sharma    schedule 07.11.2019    source источник


Ответы (1)


Что касается третьего, вы можете попробовать сделать это программно.

Вы можете переопределить эти методы в своем DefaultTimeBar:

  • onScrubStart(...)
  • onScrubMove(...)
  • onScrubStop(...)

и реализуйте свою логику для каждого из них (возможно, достаточно простого возврата).

Пожалуйста, проверьте эту ссылку для получения более подробной информации: OnScrubListener< /а>

person Emanuele Tido    schedule 07.11.2019
comment
Извините, я отредактировал мой вопрос с обновлением сразу после того, как опубликовал это. Вот как я забочусь о 3.: touch_target_height = 0dp - person Abhishek Sharma; 07.11.2019
comment
у нас похожая проблема, когда мы просто хотим отключить перетаскивание ползунка во время воспроизведения определенного фрагмента контента (MP3). установка touch_target_height = 0dp работает, однако есть ли способ установить это значение программно? - person ajonno; 27.02.2020