0

我正在使用 ExoPlayer 2 在 Android 上开发视频播放器。
我正在寻找检测 SubtitleView(屏幕上部)中的字幕更改以自动滚动 TextView(屏幕下部)中的字幕的方法。
看起来没有听众这样做。
我在 SubtitleView 中尝试了几个侦听器,但没有任何效果。
你有什么想法?

这是SubtitleView的库。
https://google.github.io/ExoPlayer/doc/reference/com/google/android/exoplayer2/ui/SubtitleView.html
这是我正在开发的视频播放器。
https://github.com/yuseisako/TangoPlayer
这是我正在开发的视频播放器

4

1 回答 1

0

我通过遵循简单的代码来解决这个问题。

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);
于 2018-07-14T02:29:18.203 回答