Exoplayer 2, как определить смену субтитров?

Я разрабатываю видеоплеер на Android с ExoPlayer 2.
Я ищу способ обнаружить изменение субтитров в SubtitleView (верхняя часть экрана) для автоматической прокрутки субтитров в TextView (нижняя часть экрана).
Похоже, для этого нет слушателя.
Я попробовал несколько слушателей в SubtitleView, но ничего не вышло.
У вас есть идеи?

Вот библиотека SubtitleView.
https://google.github.io/ExoPlayer/doc/reference/com/google/android/exoplayer2/ui/SubtitleView.html
Это видеоплеер, который я разрабатываю. < br /> https://github.com/yuseisako/TangoPlayer
Это  видеопроигрыватель, который я разрабатываю


person Yusei    schedule 15.11.2017    source источник


Ответы (1)


Я понял это, выполнив простой код.

https://github.com/yuseisako/TangoPlayer/blob/master/app/src/main/java/me/yusei/tangoplayer/VideoPlayerActivity.java#L527

scrollSubtitleRunnable = new Runnable() {

    List<Caption> subtitles = new ArrayList<>(timedTextObject.captions.values());

    @Override
    public void run() {
        if(mMediaPlayer != null && mMediaPlayer.isPlaying()){
            float currentPos = mMediaPlayer.getTime();
            int index = 0;

            for (Caption caption : subtitles) {
                if (currentPos >= caption.start.mseconds - subtitleDelay
                        && currentPos <= caption.end.mseconds - subtitleDelay) {
                    listView.setItemChecked(index,true);
                    int height = listView.getHeight();
                    listView.setSelectionFromTop(index, height/2);
                    setSubtitleTextView(caption);
                    break;
                } else {
                    setSubtitleTextView(null);
                    if(currentPos < caption.end.mseconds - subtitleDelay){
                        break;
                    }
                }
                index++;
            }
        }

        scrollSubtitleHandler.postDelayed(this, 300);
    }
};
scrollSubtitleHandler.post(scrollSubtitleRunnable);
person Yusei    schedule 14.07.2018