ExoPlayer icon indicating copy to clipboard operation
ExoPlayer copied to clipboard

HLS Trick-Play downloaded in demo doesn't play

Open XIZZW opened this issue 3 years ago • 0 comments

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?

XIZZW avatar Aug 25 '22 14:08 XIZZW