ExoPlayer Seek Start и Seek End события

Я реализовал интерфейс AnalyticsListener и прослушиваю события onSeekStarted и onSeekProcessed.

В ExoPlayer, когда я начинаю искать, я не получаю никакого события. Когда я отпускаю ползунок, я получаю «onSeekStarted», затем видео пересчитывает позицию, и когда видео снова начинает воспроизводиться с новой позиции, я получаю «onSeekProcessed». Это не то, что мне нужно.

Мне нужно событие, когда пользователь начинает искать ползунок (Seek Start), и еще одно событие, когда пользователь отпускает ползунок (Seek End). Есть ли способ добиться этого с помощью ExoPlayer?

Я использую ExoPlayer 2.9


person ASLLOP    schedule 30.11.2018    source источник


Ответы (1)


Согласно AnalyticsListener документации:

/**
 * Called when a seek operation started.
 *
 * @param eventTime The event time.
 */
 void onSeekStarted(EventTime eventTime);

/**
 * Called when a seek operation was processed.
 *
 * @param eventTime The event time.
 */
void onSeekProcessed(EventTime eventTime);

Таким образом, эти обратные вызовы запускаются, когда позиция воспроизведения плеера изменяется, и то, что вы ищете, - это очистка слушателя.

Я предполагаю, что вы используете PlayerView с включенными стандартными элементами управления плеером, т.е. PlayerControlView, но этот класс поддерживает только прослушиватель изменения видимости VisibilityListener и не поддерживает никаких других обратных вызовов / прослушивателей.

Таким образом, для обработки операций scrubStart и scrubStop необходимо создать собственный android.widget.SeekBar и обработать обратный вызов из

SeekBar.OnSeekBarChangeListener

Обратные вызовы onStartTrackingTouch и onStopTrackingTouch сделают именно то, что вы хотите. надеюсь, это поможет

person Harneev    schedule 02.12.2018