【问题标题】:Exoplayer 2, How to detect subtitles change?Exoplayer 2,如何检测字幕变化?
【发布时间】:2017-11-15 14:23:50
【问题描述】:

我正在使用 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

【问题讨论】:

    标签: android subtitle exoplayer2.x


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 2017-02-15
      • 2018-06-23
      • 1970-01-01
      • 2017-05-04
      • 2017-02-09
      • 2017-06-16
      • 2017-07-03
      • 2017-11-16
      • 1970-01-01
      相关资源
      最近更新 更多