AVPlayer discards buffer when seeking outside of buffered range

I'm playing HLS audio content. The source material is a static file, no live event.


I noticed that when I seek outside of the buffered ranges, AVPlayer discards the already buffered content. If I seek within the buffered range, everything is fine, the buffer increases.

I took a look at the "HLS Catalog" example code, and the behavior seems similar.


My question: Is there a way to tell AVPlayer that it should cache the already loaded segments and not load them again?


The documentation for `loadedTimeRanges` says "The ranges provided might be discontinuous", so I was expecting that the already loaded ranges are not dropped.


I tried:

- setting the EXT-X-PLAYLIST-TYPE to VOD explicitly

- adding cache-control headers to the segment responses