Android ExoPlayer - Как добавить точки интереса и их обратные вызовы?

Я успешно использую ExoPlayer для воспроизведения звука в своем приложении.

У меня есть список моментов времени (в миллисекундах), в которые я хотел бы, чтобы ExoPlayer вызывал событие всякий раз, когда оно проходит через них во время воспроизведения. Я не могу найти ничего в исходном коде на GitHub, что могло бы дать мне представление о том, как я могу это сделать.

Может ли кто-нибудь указать мне правильное направление / дать мне какие-либо идеи?


person Bitcoin Cash - ADA enthusiast    schedule 23.12.2016    source источник
comment
Вы думаете о времени воспроизведения, которое отображается на панели поиска?   -  person NilayDani    schedule 23.12.2016
comment
Используйте проверку CounterDownTimer после каждого тика для вашего события.   -  person Qamar    schedule 23.12.2016
comment
@NilayDani Да.   -  person Bitcoin Cash - ADA enthusiast    schedule 23.12.2016
comment
@Qamar Мне не нужно решение для извлечения. Я хочу push-решение. Я вытаскиваю решение всегда будет иметь ошибку и будет зависеть от окна, которое я установил для вытягивания.   -  person Bitcoin Cash - ADA enthusiast    schedule 23.12.2016
comment
@Override public int getDuration() { return exoPlayer.getDuration() == ExoPlayer.UNKNOWN_TIME? 0 : (целое) exoPlayer.getDuration(); }   -  person NilayDani    schedule 23.12.2016
comment
@Override public void seekTo(int timeMillis) { long seekPosition = exoPlayer.getDuration() == ExoPlayer.UNKNOWN_TIME ? 0 : Math.min(Math.max(0, timeMillis), getDuration()); exoPlayer.seekTo(seekPosition); }   -  person NilayDani    schedule 23.12.2016
comment
Это то, что вы хотите ?   -  person NilayDani    schedule 23.12.2016
comment
@NilayDani Нет, я хочу определить, когда воспроизведение проходит через определенный момент времени, который я укажу. Я не хочу искать.   -  person Bitcoin Cash - ADA enthusiast    schedule 23.12.2016
comment
О, вы можете установить его самостоятельно, создав новый интерфейс, когда seekTo возвращает определенное значение, которое вы можете вызвать в своем коде.   -  person NilayDani    schedule 23.12.2016
comment
@NilayDani Пожалуйста, объясните подробнее. seekTo - это НЕ то, что я хочу. Я не хочу явно идти в определенное время, я хочу ЗНАТЬ, когда наступило определенное время. Это все.   -  person Bitcoin Cash - ADA enthusiast    schedule 23.12.2016
comment
@Tiago Да, я понял твою точку зрения, я говорю тебе то же самое. Просто поместите обратный вызов в метод seekTo, чтобы при возврате определенного значения этот обратный вызов запускал событие, и вы могли выполнять необходимые задачи на основе этого.   -  person NilayDani    schedule 23.12.2016
comment
Настройте TextTrackRenderer. Обратитесь сюда stackoverflow.com/ вопросы/30994242/   -  person Qamar    schedule 23.12.2016
comment
Поместите пустой субтитр с вашими временными событиями и прослушайте их в пользовательском TrackRenderer.   -  person Qamar    schedule 23.12.2016
comment
@NilayDani Вы предлагаете мне загрузить исходный код ExoPlayer и добавить туда код обратного вызова? Я не вижу другого способа добавить обратный вызов в метод seekTo. В настоящее время я импортирую ExoPlayer как простой оператор компиляции в build.gradle.   -  person Bitcoin Cash - ADA enthusiast    schedule 23.12.2016