private void seekToInternal(long positionUs) { inputStreamEnded = false; currentPositionUs = positionUs; source.seekToUs(positionUs); if (subtitle != null && (positionUs < subtitle.getStartTime() || subtitle.getLastEventTime() <= positionUs)) { subtitle = null; } parserHelper.flush(); clearTextRenderer(); syncNextEventIndex(positionUs); textRendererNeedsUpdate = subtitle != null; }
private void updateTextRenderer(long positionUs) { String text = subtitle.getText(positionUs); if (textRendererHandler != null) { textRendererHandler.obtainMessage(MSG_UPDATE_OVERLAY, text).sendToTarget(); } else { invokeRendererInternal(text); } }
private long getNextEventTime() { return ((nextSubtitleEventIndex == -1) || (nextSubtitleEventIndex >= subtitle.getEventTimeCount())) ? Long.MAX_VALUE : (subtitle.getEventTime(nextSubtitleEventIndex)); }
private void syncNextEventIndex(long positionUs) { nextSubtitleEventIndex = subtitle == null ? -1 : subtitle.getNextEventTimeIndex(positionUs); }