diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsChunkSource.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsChunkSource.java index 200af98b26..ea9e267703 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsChunkSource.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsChunkSource.java @@ -255,7 +255,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; HlsMediaPlaylist mediaPlaylist = selectedIndex < playlistUrls.length && selectedIndex != C.INDEX_UNSET ? playlistTracker.getPlaylistSnapshot( - playlistUrls[selectedIndex], /* isForPlayback= */ true) + playlistUrls[trackSelection.getSelectedIndexInTrackGroup()], + /* isForPlayback= */ true) : null; if (mediaPlaylist == null diff --git a/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/HlsChunkSourceTest.java b/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/HlsChunkSourceTest.java index bb7a3c5b2a..d85d44ef59 100644 --- a/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/HlsChunkSourceTest.java +++ b/libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/HlsChunkSourceTest.java @@ -21,7 +21,9 @@ import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.when; import android.net.Uri; +import androidx.media3.common.C; import androidx.media3.common.Format; +import androidx.media3.common.MimeTypes; import androidx.media3.exoplayer.SeekParameters; import androidx.media3.exoplayer.analytics.PlayerId; import androidx.media3.exoplayer.hls.playlist.HlsMediaPlaylist; @@ -50,8 +52,15 @@ public class HlsChunkSourceTest { private static final String PLAYLIST_EMPTY = "media/m3u8/media_playlist_empty"; private static final Uri PLAYLIST_URI = Uri.parse("http://example.com/"); private static final long PLAYLIST_START_PERIOD_OFFSET_US = 8_000_000L; - - private final HlsExtractorFactory mockExtractorFactory = HlsExtractorFactory.DEFAULT; + private static final Uri IFRAME_URI = Uri.parse("http://example.com/iframe"); + private static final Format IFRAME_FORMAT = + new Format.Builder() + .setSampleMimeType(MimeTypes.VIDEO_H264) + .setAverageBitrate(30_000) + .setWidth(1280) + .setHeight(720) + .setRoleFlags(C.ROLE_FLAG_TRICK_PLAY) + .build(); @Mock private HlsPlaylistTracker mockPlaylistTracker; private HlsChunkSource testChunkSource; @@ -70,10 +79,10 @@ public class HlsChunkSourceTest { testChunkSource = new HlsChunkSource( - mockExtractorFactory, + HlsExtractorFactory.DEFAULT, mockPlaylistTracker, - new Uri[] {PLAYLIST_URI}, - new Format[] {ExoPlayerTestRunner.VIDEO_FORMAT}, + new Uri[] {IFRAME_URI, PLAYLIST_URI}, + new Format[] {IFRAME_FORMAT, ExoPlayerTestRunner.VIDEO_FORMAT}, new DefaultHlsDataSourceFactory(new FakeDataSource.Factory()), /* mediaTransferListener= */ null, new TimestampAdjusterProvider(),