ExoPlayer
ExoPlayer copied to clipboard
HLS Trick-Play downloaded in demo doesn't play
Hi, I am learning HLS Trick Play. I am able to see trick play under the following demo
- branch:
release v2 - Demo example: Apple multivariant playlist advanced (TS)
- Track:
Video: 480 x 270, 0.04 Mbps,Audio: None,Text: None
I am able to see trick play. However, it take 1-2 seconds for the frame to load after I click fast forward or backward, which isn't very smooth.
The next thing I did was to download it under the same Track settings. However, I got the following error when trying to play it after it's downloaded.
java.lang.IllegalStateException
at com.google.android.exoplayer2.util.Assertions.checkState(Assertions.java:84)
at com.google.android.exoplayer2.trackselection.BaseTrackSelection.<init>(BaseTrackSelection.java:67)
at com.google.android.exoplayer2.trackselection.BaseTrackSelection.<init>(BaseTrackSelection.java:57)
at com.google.android.exoplayer2.source.hls.HlsChunkSource$InitializationTrackSelection.<init>(HlsChunkSource.java:883)
at com.google.android.exoplayer2.source.hls.HlsChunkSource.<init>(HlsChunkSource.java:198)
at com.google.android.exoplayer2.source.hls.HlsMediaPeriod.buildSampleStreamWrapper(HlsMediaPeriod.java:797)
at com.google.android.exoplayer2.source.hls.HlsMediaPeriod.buildAndPrepareMainSampleStreamWrapper(HlsMediaPeriod.java:660)
at com.google.android.exoplayer2.source.hls.HlsMediaPeriod.buildAndPrepareSampleStreamWrappers(HlsMediaPeriod.java:512)
at com.google.android.exoplayer2.source.hls.HlsMediaPeriod.prepare(HlsMediaPeriod.java:165)
at com.google.android.exoplayer2.source.MaskingMediaPeriod.createPeriod(MaskingMediaPeriod.java:130)
at com.google.android.exoplayer2.source.MaskingMediaSource.onChildSourceInfoRefreshed(MaskingMediaSource.java:203)
at com.google.android.exoplayer2.source.MaskingMediaSource.onChildSourceInfoRefreshed(MaskingMediaSource.java:38)
at com.google.android.exoplayer2.source.CompositeMediaSource.lambda$prepareChildSource$0$com-google-android-exoplayer2-source-CompositeMediaSource(CompositeMediaSource.java:115)
at com.google.android.exoplayer2.source.CompositeMediaSource$$ExternalSyntheticLambda0.onSourceInfoRefreshed(Unknown Source:4)
at com.google.android.exoplayer2.source.BaseMediaSource.refreshSourceInfo(BaseMediaSource.java:88)
at com.google.android.exoplayer2.source.hls.HlsMediaSource.onPrimaryPlaylistRefreshed(HlsMediaSource.java:473)
at com.google.android.exoplayer2.source.hls.playlist.DefaultHlsPlaylistTracker.onPlaylistUpdated(DefaultHlsPlaylistTracker.java:426)
at com.google.android.exoplayer2.source.hls.playlist.DefaultHlsPlaylistTracker.access$1500(DefaultHlsPlaylistTracker.java:52)
at com.google.android.exoplayer2.source.hls.playlist.DefaultHlsPlaylistTracker$MediaPlaylistBundle.processLoadedPlaylist(DefaultHlsPlaylistTracker.java:724)
at com.google.android.exoplayer2.source.hls.playlist.DefaultHlsPlaylistTracker$MediaPlaylistBundle.onLoadCompleted(DefaultHlsPlaylistTracker.java:584)
at com.google.android.exoplayer2.source.hls.playlist.DefaultHlsPlaylistTracker$MediaPlaylistBundle.onLoadCompleted(DefaultHlsPlaylistTracker.java:512)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.handleMessage(Loader.java:478)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:233)
at android.os.HandlerThread.run(HandlerThread.java:67)
Is this error expected? Am I not suppose to download the iframe track? Is there a smoother way for trick play to load?