@Override public int getCurrentPeriodIndex() { if (shouldMaskPosition()) { return maskingPeriodIndex; } else { return playbackInfo.timeline.getIndexOfPeriod(playbackInfo.periodId.periodUid); } }
@Override public int getCurrentWindowIndex() { if (shouldMaskPosition()) { return maskingWindowIndex; } else { return playbackInfo.timeline.getPeriodByUid(playbackInfo.periodId.periodUid, period) .windowIndex; } }
@Override public boolean isPlayingAd() { return !shouldMaskPosition() && playbackInfo.periodId.isAd(); }
@Override public long getCurrentPosition() { if (shouldMaskPosition()) { return maskingWindowPositionMs; } else if (playbackInfo.periodId.isAd()) { return C.usToMs(playbackInfo.positionUs); } else { return periodPositionUsToWindowPositionMs(playbackInfo.periodId, playbackInfo.positionUs); } }
@Override public long getContentBufferedPosition() { if (shouldMaskPosition()) { return maskingWindowPositionMs; } if (playbackInfo.loadingMediaPeriodId.windowSequenceNumber != playbackInfo.periodId.windowSequenceNumber) { return playbackInfo.timeline.getWindow(getCurrentWindowIndex(), window).getDurationMs(); } long contentBufferedPositionUs = playbackInfo.bufferedPositionUs; if (playbackInfo.loadingMediaPeriodId.isAd()) { Timeline.Period loadingPeriod = playbackInfo.timeline.getPeriodByUid(playbackInfo.loadingMediaPeriodId.periodUid, period); contentBufferedPositionUs = loadingPeriod.getAdGroupTimeUs(playbackInfo.loadingMediaPeriodId.adGroupIndex); if (contentBufferedPositionUs == C.TIME_END_OF_SOURCE) { contentBufferedPositionUs = loadingPeriod.durationUs; } } return periodPositionUsToWindowPositionMs( playbackInfo.loadingMediaPeriodId, contentBufferedPositionUs); }