google / google/ExoPlayer

HLS Trick-Play downloaded in demo doesn't play

Open
#10,555 0 comments 0 reactions 1 assignee Claimed by @marcbaechinger View on GitHub
needs triage question
Dominant language
Java
Stars
21.9k
Forks
6k
PR merge metrics
No merged PRs in 30d

Description

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.(BaseTrackSelection.java:67)
at com.google.android.exoplayer2.trackselection.BaseTrackSelection.(BaseTrackSelection.java:57)
at com.google.android.exoplayer2.source.hls.HlsChunkSource$InitializationTrackSelection.(HlsChunkSource.java:883)
at com.google.android.exoplayer2.source.hls.HlsChunkSource.(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?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.