From 1fe7fbc4cd3f92e38b9c4852264fbbe23655fbc8 Mon Sep 17 00:00:00 2001 From: Justin Wong <46082645+uvjustin@users.noreply.github.com> Date: Sun, 28 Mar 2021 23:59:00 +0800 Subject: [PATCH] Use most recent part for start position --- .../exoplayer2/source/hls/HlsMediaSource.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java index e5c233ef43..4eaed25f11 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java @@ -601,7 +601,18 @@ public final class HlsMediaSource extends BaseMediaSource && segments.get(segmentIndex).relativeStartTimeUs > minStartPositionUs) { segmentIndex--; } - return segments.get(segmentIndex).relativeStartTimeUs; + HlsMediaPlaylist.Segment segment = segments.get(segmentIndex); + List parts = segment.parts; + int partIndex = parts.size(); + if (partIndex > 1) { + HlsMediaPlaylist.Part part; + do { + partIndex--; + part = parts.get(partIndex); + } while (part.relativeStartTimeUs > minStartPositionUs || !part.isIndependent); + return part.relativeStartTimeUs; + } + return segment.relativeStartTimeUs; } private void maybeUpdateMediaItem(long targetLiveOffsetUs) {