Skip to content

Provide ways to avoid projection for live streams in a playlist #9037

@apptrash

Description

@apptrash

I'm using HLS event-playlists. There are always two MediaItem's in a playlist. I wish to have seamless transition, but sometimes ExoPlayer doesn't play next item from beginning (it skips around 6-30 seconds and start from this position).

What I do is:

override fun onMediaItemTransition(mediaItem: MediaItem?, reason: Int) {
    if (reason == MEDIA_ITEM_TRANSITION_REASON_AUTO) {
        Log.d(TAG, "position: ${player.getCurrentPosition()}") // <-- NOT ZERO !!!
        player.moveMediaItem(1, 0)
        player.removeMediaItem(1)
        player.addMediaItem(nextMediaItem)
    }
}

Can you help me? Am i doing something wrong?

All of HLS playlists looks the same:

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-START:TIME-OFFSET=0
#EXT-X-MEDIA-SEQUENCE:26992
#EXT-X-PLAYLIST-TYPE:EVENT
#EXTINF:10.08000
#EXT-X-PROGRAM-DATE-TIME:2021-06-09T15:34:53.706Z
2021-06-09/15/segment_153453706_010080.ts
#EXTINF:10.08000
#EXT-X-PROGRAM-DATE-TIME:2021-06-09T15:35:03.960Z
2021-06-09/15/segment_153503960_010080.ts
#EXTINF:10.08000
#EXT-X-PROGRAM-DATE-TIME:2021-06-09T15:35:13.953Z
2021-06-09/15/segment_153513953_010080.ts
#EXTINF:10.08000
#EXT-X-PROGRAM-DATE-TIME:2021-06-09T15:35:23.654Z
2021-06-09/15/segment_153523654_010080.ts
#EXTINF:10.08000
#EXT-X-PROGRAM-DATE-TIME:2021-06-09T15:35:34.034Z
2021-06-09/15/segment_153534034_010080.ts
#EXTINF:10.08000
#EXT-X-PROGRAM-DATE-TIME:2021-06-09T15:35:44.006Z
2021-06-09/15/segment_153544006_010080.ts
...
#EXTINF:10.08000
#EXT-X-PROGRAM-DATE-TIME:2021-06-09T16:26:17.988Z
2021-06-09/16/segment_162617988_010080.ts
#EXTINF:10.08000
#EXT-X-PROGRAM-DATE-TIME:2021-06-09T16:26:28.364Z
2021-06-09/16/segment_162628364_010080.ts
#EXTINF:10.08000
#EXT-X-PROGRAM-DATE-TIME:2021-06-09T16:26:38.226Z
2021-06-09/16/segment_162638226_010080.ts

ExoPlayer version r2.14.0

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions