【问题标题】:Exoplayer 2, How to detect subtitles change?Exoplayer 2,如何检测字幕变化?
【发布时间】:2017-11-15 14:23:50
【问题描述】:
【问题讨论】:
标签:
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);