我正在使用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
答案 0 :(得分:0)
我通过遵循简单的代码来解决这个问题。
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);